LinuCレベル4 システムアーキテクト 性能・拡張性の設計 問5
性能・拡張性の設計/性能の改善ノード内およびノード間の性能改善の判断として、適切でないものはどれか。
当サイトのオリジナル問題(LinuCレベル4 システムアーキテクトの出題範囲「性能・拡張性の設計」に対応。実際の試験問題ではありません)
- A大量の共有メモリを使うデータベースでは、ヒュージページを事前に確保しておくと、その領域はスワップアウトされず、ページテーブルが消費するメモリも抑えられる
- Bボンディングでリンクを束ねれば、1本のTCP接続のスループットも本数分だけ増えるため、単一の大容量転送の高速化に向く
- C内部で高い並列性を持つNVMe SSDでは、I/Oスケジューラにnoneを選び、カーネル側での並べ替えを省く構成が一般的である
- D帯域が広く往復遅延も大きい経路では、TCPのバッファを帯域と往復遅延の積以上にしないと、回線の帯域を使い切れない
正解:B
解説
ボンディング(リンクアグリゲーション)は、多くのモードでアドレスやポートのハッシュによって通信の流れ(フロー)ごとに送信するリンクを決めるため、1本のTCP接続は基本的に1本のリンクしか使いません。そのため、多数の接続をまとめた全体のスループットは向上しますが、単一のストリームの速度は1本のリンクの帯域が上限になります。なお balance-rr モードは単一の接続も複数のリンクに振り分けますが、パケットの順序が入れ替わるため、スループットは本数分には伸びません。ヒュージページは事前に確保した領域がスワップされず、ページテーブルも小さく済む手段で、NVMe SSDではデバイス側の並列性が高いため、スケジューラをnoneにしてオーバーヘッドを減らすのが一般的です。長距離広帯域の経路では、帯域遅延積に見合うバッファを確保しないとウィンドウ不足でスループットが頭打ちになります。
選択肢ごとの解説
- A誤り(正しい記述)。事前に確保したヒュージページはスワップの対象にならず、ページサイズが大きいぶんページテーブルの項目数も減ります。
- B正しい(誤っている記述)。多くのモードではフロー単位でリンクを選ぶため、1本のTCP接続の速度は1本のリンクの帯域を超えません。
- C誤り(正しい記述)。NVMe SSDはデバイス自身が多数のキューで並列に処理するため、カーネルでの並べ替えを省くnoneがよく選ばれます。
- D誤り(正しい記述)。送信中で応答待ちのデータ量は帯域と往復遅延の積になるため、バッファがそれより小さいと帯域を使い切れません。