Plexに割り当てるべきメモリ容量はどのくらいですか?

エヴァ・ウォン は テクニカルライター であり ZimaSpaceの常駐ティンカーでもあります。 生涯のオタクであり、 ホームラボとオープンソースソフトウェアに情熱を持っています。彼女は複雑な技術的概念をわかりやすく、 実践的なガイドに翻訳することを専門としています。エヴァはセルフホスティングは楽しくあるべきで、怖がるものではないと信じています。彼女のチュートリアルを通じて、コミュニティが ハードウェアのセットアップを解明する手助けをしています。初めてのNAS構築からDockerコンテナの習得まで。

Plexに必要なRAM容量に普遍的な目安はありません。実際のワークロードで測定したピーク値を起点に、ホスト用の余裕を確保し、メモリの逼迫が解消されて別のリソースがボトルネックになるまでメモリを追加します。

Plexコンテナはアイドル時には余裕があるのに、スキャンや複数ストリームの再生、ほかのコンテナの処理中に不安定になっていませんか?現実的なワークロードから始め、常駐メモリのピーク値とホストのメモリ逼迫状況を測定し、Plexの一時的なバーストとOSのための余裕を残した制限値を設定しましょう。サービスがスワップやメモリ不足による強制終了に追い込まれる設定は避けてください。

測定したメモリのベースラインから始める

Plex自体は通常、RAMを大量に消費するアプリケーションではありません。より大きなリスクは、コンテナの上限を低く設定しすぎて、一時的なピークがメタデータ処理、トランスコード用ヘルパー、通常のファイルシステムキャッシュによるメモリ圧迫と重なることです。

リソースごとのボトルネック確認では、単一の平均値に頼らず、CPU、メモリ、ネットワーク、ストレージについて使用率、飽和度、エラーを確認する必要があります。これがPlexのメモリ容量を決めるために確立すべきベースラインです。

健全なベースラインでは、OOMイベントや継続的なスワップが発生せず、OSや周辺サービスのために十分な空きメモリまたは回収可能なメモリが確保されています。

実際に実行するワークロードでピーク値を確認する

スキャンやメンテナンス処理を1つ実行し、ピーク時に想定するストリーム数を同時に再生するなど、通常時に想定される最も重い組み合わせを実行します。Plexのメモリ使用量、ホスト全体のメモリ逼迫状況、スワップやOOM警告の有無を記録してください。

Plexのメモリ容量を測定する際、コンテナのテストでは、有効なワーキングセットが満たされた後は、割り当てるメモリを増やしても必ずしもパフォーマンスが向上しないことが示されています。そのため、メモリ容量は観測したメモリ逼迫状況に基づいて決めるべきです。

キャッシュされたメモリだけを見て判断しないでください。Linuxは、空いているRAMをファイルシステムキャッシュに利用する場合があります。そのため、使用中メモリの数値が高いからといって、Plexにより大きなハードリミットが必要だとは限りません。

ホストのメモリを枯渇させずに制限値を設定する

繰り返し発生するPlexのピーク値を上回る上限を設定し、OSやほかのコンテナ用に明示的な余裕を残します。Plex自身の上限に達する前にホスト全体が常にメモリ逼迫状態になる場合は、コンテナの数値よりもシステム全体の容量不足のほうが重要な問題です。

Plexだけが設定した上限に達している場合は、段階的に上限を引き上げ、同じピークテストを再実行します。別のサービスがメモリを圧迫している場合は、Plexに残りのギガバイトをすべて割り当てるのではなく、そのサービスを制限するか実行時間を調整してください。

制限値を変更したら、元のピークワークロードを再テストし、コンテナを一度再起動します。再生、スキャン、通常の再起動動作がすべて安定し、スワップの急増やOOMイベントが発生しない場合にのみ、その設定は適切だといえます。

別のリソースが上限になったらRAMの追加を止める

Plexがメモリ不足ではなくなり、残る問題がCPUによるトランスコード、ストレージの遅延、クライアントの互換性、ネットワーク帯域幅に起因する場合は、メモリの追加を止めます。RAMを増やしても、これらの上限は解消できません。

ハードウェアアクセラレーションを利用したストリーミング構成は、計算処理、アプリデータ、メディアストレージ、ネットワークの役割を分けて書き出すと評価しやすくなります。

測定した複合ワークロードが安全な余裕を確保した状態で収まらない場合にのみ、ホストのサイズアップを検討してください。それ以外の場合は、実際のピークをクリアし、サーバーのほかの処理の安定性を維持できる最小限の制限値に留めます。

  1. 実際の同時実行数でPlexのメモリピークを測定する
  2. ホストレベルでスワップとOOMイベントを確認する
  3. OSやほかのアプリ用の余裕を残す
  4. コンテナの再起動後に再テストする

サポートとヒント

もっと読む

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.