過去問ドリル

LinuCレベル4 システムアーキテクト 性能・拡張性の設計 問26

性能・拡張性の設計/性能の改善

LinuxサーバーのHugePages(大きなページサイズ)を有効化してデータベースのバッファプールに使う設計について、記述として誤っているものはどれか。

当サイトのオリジナル問題(LinuCレベル4 システムアーキテクトの出題範囲「性能・拡張性の設計」に対応。実際の試験問題ではありません)

正解:A

解説

HugePagesとしてロックされたメモリはスワップアウトされませんが、その効果はHugePagesとして確保された領域だけに限られます。通常ページで管理されているページキャッシュやその他のメモリはスワップの対象のままであり、HugePagesの有効化がすべてのメモリのスワップを停止させるわけではありません。TLBのエントリ節約効果、Transparent HugePagesのデータベースへの影響、静的HugePagesのスワップ非対象という特性はいずれも正しい記述です。

選択肢ごとの解説

  • A正しい(誤っている記述)。スワップアウトされなくなるのはHugePages領域だけです。通常ページのページキャッシュ等は引き続きスワップの対象であり、HugePages有効化が全メモリをロックするわけではありません。
  • B誤り(正しい記述)。HugePagesはTLBエントリを節約し、大量メモリを扱うデータベースや仮想化環境でページウォークのオーバーヘッドを低減できます。
  • C誤り(正しい記述)。Transparent HugePagesはアプリの制御外でページ統合が起き、自前でメモリ管理するデータベースではレイテンシスパイクや断片化の問題を引き起こすことがあります。
  • D誤り(正しい記述)。静的HugePagesの領域はカーネルが予約してロックしており、スワップには使われません。
LinuCレベル4 システムアーキテクトの問題を演習モードで解く