制限されたPCIeリンクは、ドライブの合計同時スループットがカードが実際にネゴシエートした使用可能帯域幅を超えた場合にのみホームサーバーのHBAのボトルネックとなります。
8ポートのHBAはメディア再生時には正常に動作するが、ZFSのスクラブ、パリティチェック、リビルド、または複数SSDの転送時に性能が落ちることがありますか?フルレングススロットは4レーンのみ配線されているかもしれませんし、x8カードがより少ないレーンでネゴシエートしているかもしれません。またはHBAが共有チップセット経路の背後にあるかもしれません。ドライブを交換する前にネゴシエートされたリンクを確認してください。このガイドでは、実際のPCIeボトルネックと遅いディスク、ネットワーク、またはストレージスタックを区別するための計算、ワークロード、テストを示しています。
「制限されたPCIeリンク」とは実際に何を意味するのか?
似ているようで異なる3つの値があります。機械的なスロットサイズは物理的にどのカードが装着できるかを示します。電気的なレーン数はマザーボードがそのスロットに配線したレーン数を示します。ネゴシエートされたリンクは起動後にHBAとマザーボードが実際に使用している世代と幅を報告します。
したがって、x8のHBAはフルレングスのx16スロットに装着できてもx4で動作することがあります。PCIeは相互にサポートされるリンクをネゴシエートするためカードは動作しますが、ホスト側の帯域幅は減少します。マザーボードのマニュアルはこの違いを明確に示しています。例えば、ASUS PRIME Z690-P D4はフルレングスのx4モード対応のPCIe x16スロットをリストしています。
コネクタの長さだけでリンクを判断しないでください。HBAのモデル、スロットの最大電気幅、CPUまたはチップセットのルーティング、そして実際にネゴシエートされた速度と幅を記録してください。その経路の中で最も狭いアクティブ部分がローカルのPCIe上限を決定します。
HBAは実際にどれくらいの帯域幅を受け取っているのか?
PCIeの帯域幅は世代、レーン数、エンコーディング効率によって異なります。PCIe 2.0は1レーンあたり5.0 GT/sで転送し、8b/10bエンコーディングを使用します。一方、PCIe 3.0は8.0 GT/sで転送し、より効率的な128b/130b方式を使用します。PCIe 3.0の転送速度とエンコーディングの変更により、エンコーディング調整済みの片方向上限は1レーンあたり約500 MB/sから約985 MB/sに上昇します。
| ネゴシエートされたリンク | 方向ごとのエンコーディング調整済み上限 | 実用的なホームサーバーの解釈 |
|---|---|---|
| PCIe 2.0 x4 | 約2.00 GB/s | 高速な8台HDDスキャンや複数のSATA SSDを制限する可能性あり |
| PCIe 2.0 x8 | 約4.00 GB/s | 通常はHDDアレイに十分だが、大規模なSATA SSDセットでは制限となる可能性あり |
| PCIe 3.0 x4 | 約3.94 GB/s | ほとんどのHDD HBAおよび複数のSATA SSDに十分な余裕 |
| PCIe 3.0 x8 | 約7.88 GB/s | 8ポートSAS/SATA HBAに十分な余裕あり |
これらの数値は保証されたファイルコピー速度ではありません。PCIeパケットのオーバーヘッド、コントローラーの動作、キュー深度、ファイルシステムの処理、RAIDやパリティ計算、ドライブの制限、読み書きの混在がすべてアプリケーションのスループットを低下させます。この表は構成のスクリーニングの上限として扱い、サーバーの測定値と比較してください。
制限に達するには何台のドライブが必要か?
有用な計算は、ポート数にSATAまたはSASインターフェースのラベルを掛けることではありません。同じワークロード中にドライブの測定されたスループットの合計です。SATA 6 Gb/sと表示された8台のディスクは、各ドライブ内のメディアがインターフェースよりはるかに遅いため、48 Gb/sの持続的なデータを生成しません。
例としての連続読み取りでは、平均200 MB/sのHDD8台が約1.6 GB/sを要求します。各250 MB/sの場合、同じアレイは2.0 GB/sに達し、PCIe 2.0 x4のエンコード調整後の上限に迫ります。実際の結果はドライブモデル、ディスクゾーン、断片化、コマンドの混合、パリティレイアウト、全メンバーが同時にアクティブかどうかによって異なります。
SATA SSDは閾値を引き上げます。SamsungはSamsung SSD 870 EVOの連続性能として最大560 MB/sの連続読み取りと530 MB/sの書き込みを指定しています。550 MB/sで読み取る同等のSSD4台は合計約2.2 GB/sとなり、PCIe 2.0 x4を超えますが、PCIe 3.0 x4のエンコード調整後の上限には届きません。その速度で8台合計すると約4.4 GB/sとなり、PCIe 3.0 x4を超え、他のオーバーヘッドを考慮する前にPCIe 2.0 x8をわずかに超えます。
これらの数値は約束ではなく例として使用してください。各ドライブを個別にベンチマークし、同時に発生しうる速度を合計し、その合計を交渉されたリンク速度と比較してください。また、デバイスクラスを正確に把握してください。LSI 9211や9207のような従来のSAS/SATA HBAは、パッシブケーブルを通じてNVMeコントローラーにはなりません。NVMeサポートは、対応するトリモードアダプターまたはNVMeレーンルーティング用に設計されたPCIeアダプターとプラットフォームに属します。
どのホームサーバーワークロードがボトルネックを露呈するのか?
多くのドライブが同時にデータを転送するときにPCIeのボトルネックが最も明確に現れます。スクラブ、パリティチェック、リシルバーやリビルド、RAID全体の連続読み取り、複数のデータセットにまたがるバックアップ、複数の高速クライアントがその条件を作り出します。OpenZFSは通常のスクラブをプール内のすべてのデータを検査してチェックサムを検証する操作と説明し、スクラブとリシルバーはI/O集約型の操作であると述べています。
通常の使用では同じ負荷に達しないこともあります。ギガビットイーサネットのクライアントはネットワークオーバーヘッド前で125 MB/sが上限であり、メディアストリームは通常その一部しか必要としません。10GbE接続でも生の信号速度は1.25 GB/sなので、一つのクライアントだけでクリーンな2.0 GB/sのPCIe 2.0 x4リンクを飽和させることはできません。複数のリンク、ローカルジョブ、キャッシュデバイス、共有チップセットトラフィックが同時に動作する場合は高速ネットワーキングが重要になります。
一つの遅いタスクよりも、繰り返し発生する総合的な上限を探してください。個々のディスクがより高速であっても、HBAの総スループットがほぼ同じレベルで頭打ちになる場合、PCIeが強い疑いとなります。遅いのが一つのディスク、データセット、プロトコル、またはクライアントだけなら、そのコンポーネントを最初に調査してください。
なぜチップセット接続スロットは二重チェックが必要なのか?
HBAのネゴシエートされたリンクは、ルートポートへのローカル接続に過ぎません。CPU接続のスロットは比較的直接的な経路を持つことがありますが、チップセット接続のスロットはチップセットからCPUへのアップリンクをオンボードのSATA、M.2デバイス、USBコントローラ、ネットワーキング、その他の拡張スロットと共有しています。HBAはPCIe 3.0 x4を正しく報告していても、上流の無関係なトラフィックと競合する可能性があります。
レーン共有は、別のコネクタが有効になるとスロットの幅を変更することもあります。例えば、ASUS ROG STRIX B660-Fのマニュアルには、通常はx4をサポートするチップセット接続のフルレングススロットが記載されていますが、2つのx1スロットのいずれかがアクティブになるとx2に落ちます。チップセットのPCIe帯域共有ルールは、スロットマップ全体を確認する必要がある理由を示しています。
正確なマザーボードのリビジョンに対応した拡張スロット表、ストレージ共有の注意事項、およびブロック図を読みます。HBAをCPU接続スロットに移動してアレイを変更せずにプラトーがなくなった場合、旧ルートがワークロードを制限していました。パフォーマンスが変わらない場合、ボトルネックはおそらく他にあります。
交渉済みPCIeリンクをどのように確認できますか?
Linuxでは、まずlspciでHBAを特定し、次にsudo lspci -vv -s <BDF>で詳細を確認します。デバイスの能力を示すLnkCapと、現在の速度と幅を示すLnkStaを比較します。Red HatのPCIトラブルシューティングリファレンスでは、LnkCapとLnkStaコマンドを使って最大および現在のPCIeリンク速度を比較しています。
lspci | grep -Ei 'sas|scsi|raid'
sudo lspci -vv -s 03:00.0 | grep -E 'LnkCap:|LnkSta:'
このような結果 LnkCap: スピード 8GT/s、幅 x8 と共に LnkSta: スピード 5GT/s、幅 x4 これは、Gen3 x8対応のエンドポイントがPCIe 2.0 x4として動作していることを意味します。考えられる原因には、スロット配線、BIOSのレーン割り当て、ライザーやアダプター、信号品質のフォールバック、CPUの制限、またはマザーボードのレーン分割を変更する他のデバイスがあります。
次にデータパスをテストします。各ドライブを個別に測定し、多数のメンバーをアクティブにするワークロードでアレイをテストし、総合的なディスクとネットワークのスループットを監視します。ライブデータに対して破壊的なベンチマークは避け、キャッシュされた読み取りをディスク性能として扱わないでください。総合結果が繰り返し実用的な上限に近づき、HBAを移動したり期待されるリンク幅を復元した後に上昇する場合、PCIeリンクが関係しています。
HBAを移動すべきか、交換すべきか、それともそのままにすべきか?
交渉済みリンクが測定された総需要を十分に上回り、サーバーが回復、メンテナンス、およびクライアントパフォーマンスの目標を満たしている場合は、HBAをそのままにしておきます。PCIe 3.0 x4リンクは通常、8台のドライブHDDアレイに十分であり、アップグレードしてもネットワークで既に制限されているギガビットのファイルコピーは高速化しません。
カードが能力以下で動作している場合、予期せずレーンを共有している場合、またはチップセットのトラフィックが重い場合はカードを移動してください。十分な電気的レーンがあるスロットを優先し、プラットフォームが許す場合はCPU接続のルートを選びます。再確認してください。 LnkSta 物理的に大きなスロットだからといって、必ずしもより広い交渉済み接続が保証されるわけではないため、移動後に確認してください。
スロットとワークロードのテストで実際の上限が示された後にのみハードウェアを交換してください。モデル番号は重要です:BroadcomはLSI SAS 9211-8iを8レーンのPCIe 2.0 HBAとして指定していますが、他の類似名のアダプターは異なるPCIe世代を使用しています。より高速なHBAを購入する前に、正確なコントローラー、ファームウェアモード、コネクタータイプ、OSサポート、ドライブプロトコルを確認してください。
判断ルールは簡単です:まず計算し、次に検証し、最後にハードウェアを変更します。リンクの上限が測定された同時需要を下回る場合は、スロットまたはHBAを改善してください。需要が上限を大幅に下回る場合は、ディスク、パリティ計算、ファイルシステム設定、熱、配線、ネットワーク制限を調査してください。
よくある質問
x8のHBAは電気的にx4のスロットで動作しますか?
通常はそうです。物理スロットがカードを受け入れ、マザーボードがデバイスをサポートしている場合に限ります。HBAはx4で交渉し、同じPCIe世代のx8より約半分のレーン帯域幅で動作します。共有や障害条件下で一部のスロットがx2またはx1に落ちることがあるため、アクティブな幅を確認してください。
PCIe 2.0 x4は8台のハードドライブに十分ですか?
通常のメディアサービング、バックアップ、ギガビットネットワーキングには十分ですが、8台の高速HDDにまたがる理想的なシーケンシャル操作を制限する可能性があります。8台のドライブが平均200 MB/sの場合、合計で約1.6 GB/s、250 MB/sの場合はプロトコルオーバーヘッド前の約2.0 GB/sのエンコード調整済み上限に達します。メンテナンス時間が重要な場合はスクラブやリビルドのスループットを測定してください。
なぜ物理的なx16スロットがx4またはx1しか交渉しないのですか?
スロットはレーン数が少なく配線されている場合や、M.2や他の拡張スロットとレーンを共有している場合、チップセットの構成を経由している場合、またはライザー、接触、ファームウェア、信号の問題で制限されることがあります。マザーボードのマニュアルを確認し、比較してください。 LnkCap と共に LnkStaサーバーを安全にシャットダウンした後にのみ、カードを再装着し、別のドキュメント化されたスロットでテストしてください。
最終的な結論
制限されたPCIeリンクは自動的にホームサーバーのHBAのボトルネックになるわけではありません。特にフルアレイのメンテナンスや複数SSDのワークロード中に、同時ドライブの需要がカードが実際に交渉した世代とレーン幅の使用可能容量に達したときにボトルネックになります。
電気的なスロットのレイアウトを確認し、読み取る LnkSta、測定されたドライブ速度から総スループットを計算し、ハードウェアを変更する前にワークロードを再現します。より広いまたはより直接的なPCIeパスを復元してパフォーマンスが向上した場合はボトルネックを特定したことになります。向上しない場合はHBAを保持し、ストレージパスの残りをテストしてください。
テック&AIハブ
もっと読む

Home AssistantはLAN接続とリモート接続でなぜパフォーマンスが異なるのですか?
LAN接続とリモート接続のHome Assistantセッションではネットワーク経路が異なります。リモート接続では、DNS、暗号化、WAN、プロキシやVPN、再接続処理による遅延が加わります。

Home AssistantはCGNATや二重NAT環境でも安定して動作しますか?
CGNATと二重NATは通常、ローカルでのHome Assistantの制御には影響しません。主に、リモートクライアントがホームネットワークへのインバウンド経路を確立する方法が変わります。

インターネット障害中、ネットワーク遅延はHome Assistantにどのような影響を与えるか?
インターネット接続の喪失とネットワーク遅延は異なる障害です。DNS、クラウド連携、ゲートウェイ、リモートクライアントが待機している間も、ローカルデバイスへの経路は高速なまま維持されることがあります。

