Jellyfinは多くの場合、ユーザーの操作をまず状態変更に変換し、その後に非同期ジョブとして処理します。これにより、クライアントが応答した後も、スキャン、メタデータ処理、メディア処理を継続できます。
ホームサーバーでは、ライブラリ項目を開くと、再生が独立して開始される一方で、データベース検索、画像取得、スケジュールされた更新が実行されることがあります。重要な境界は、その操作に永続的なI/Oやメディア変換が必要かどうかです。それによって、どの処理がキューに入れられ、サーバーがその負荷をいつ示すかが決まります。
クライアントイベントとサーバーの状態変更を分ける
ユーザーはクリック、検索、再生開始、設定変更などを行います。ここで重要なのは、クライアントが意図を送信し、Jellyfinがそれを検証して、処理を継続するために必要な最小限の永続状態を書き込むという関係です。
観測できる効果は、ログやタスク履歴に後続処理が表示されている間も、UIが素早く応答できることです。これが、指定された条件によって結果が変わる理由です。キャッシュヒット
境界は明確です。純粋なキャッシュ検索はリクエスト内で完了する場合がありますが、新しい項目、スキャン、再生変換はバックグラウンド処理へ移行します。実際には、リクエスト時間とタスク開始時間を別々のイベントとして扱います。
Jellyfinがクライアントをブロックせずに作業をキューに入れる理由を説明する
状態変更には、数秒から数分かかる処理が必要になることがあります。ここで重要なのは、キューによってJellyfinがクライアントのリクエストを開いたままにせず、I/OやCPU処理をスケジュールできるという関係です。
観測できる効果は、ユーザーにはクリックが完了したように見える一方で、タスクの進行状況、ログ、ディスク活動が継続することです。これが、指定された条件によって結果が変わる理由です。永続状態
境界は明確です。キューイングによって空き容量が生まれるわけではありません。同時実行ジョブが多すぎると、再生処理とリソースを奪い合います。実際には、遅延している処理を、必ずしも停止したリクエストとは限らない、意図的な境界として解釈します。
ジョブをCPU、ストレージ、ネットワークの各段階に対応付ける
キューに入ったタスクは可視化されます。ここで重要なのは、メタデータジョブはアセットを取得して書き込み、スキャンはメディアを読み取ってデータベースを更新し、トランスコードはデコード、変換、セグメント出力を行うという関係です。
観測できる効果は、ジョブごとにCPU、ディスク、ネットワーク、GPUの使用パターンが異なることです。これが、指定された条件によって結果が変わる理由です。トランスコードの各段階
境界は明確です。キャッシュヒットがミスに変わったり、クライアントが再生モードを変更したりすると、ジョブの経路が変わることがあります。実際には、タスクの負荷を比較するとき、メディアとクライアントを同じ条件に保ちます。
イベントからジョブを予測する際の限界を示す
イベントと、想定されるジョブの種類は分かっています。ここで重要なのは、キャッシュの状態、クライアントの性能、タスクの優先度、同時実行負荷によって、処理が省略、延期、拡張されるかどうかが決まるという関係です。
観測できる効果は、ライブラリがウォームな状態なら同じクリックが軽い処理で済む一方、パス変更後やトランスコードが必要なクライアントでは高負荷になることです。これが、指定された条件によって結果が変わる理由です。固定ワークロードマトリックス
境界は明確です。これらの変数を一定に保てない場合、操作とジョブの対応関係は固定コストモデルとして機能しません。実際には、操作に普遍的なコストを割り当てるのではなく、固定したマトリックスで実行結果を比較します。
テック&AIハブ
もっと読む

ホームサーバーにサービスを追加すると、Home Assistantのアーキテクチャはなぜ変化するのか?
サービスを追加して共有状態、キュー、デバイス、更新サイクル、または障害ドメインが増えると、単にコンテナが増えるだけでなく、Home Assistantのアーキテクチャが変わります。

キャッシュを容量と取り違えずにHome Assistantのパフォーマンスを測定する方法
ウォーム状態での結果は、容量ではなく再利用を示します。コールドスタート、ウォーム時の定常状態、繰り返し負荷、テールレイテンシ、そして最初に飽和するリソースを測定してください。

Home Assistantで家全体を制御するには、どれくらいの自動化同時実行数が必要ですか?
家全体の自動化の多くは、重複実行数に上限を設けるだけで十分です。実行時間×トリガー発生率で同時実行数を見積もり、その後、下流システムが安全に処理できる容量を上限にします。

