過去問ドリル

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

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

SATA HDDを搭載したLinuxサーバーでトランザクション処理を担うデータベースが動いている。ランダムI/Oの最大待ち時間を抑えてDB応答遅延を改善するため、I/Oスケジューラの変更を検討している。最も適切な選択はどれか。

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

正解:B

解説

mq-deadline(旧deadline)スケジューラは各I/Oリクエストにデッドライン(上限待ち時間)を設け、デッドライン超過を防ぐことでHDDのランダムI/Oの最大待ち時間を抑えます。シーケンシャル寄りの最適化を行いながらも個々のリクエストの遅延を保証するため、HDDを使ったデータベースのランダムI/O性能改善に向いています。noneはNVMe/SSDのハードウェアキューに委ねる設計でHDDには適しません。kyberも高並列なNVMeデバイス向けです。bfqはI/O帯域の公平配分を目的としており、特定プロセスのランダムI/Oの最大レイテンシを最小化することに特化していません。

選択肢ごとの解説

  • A誤り。noneスケジューラはNVMe SSDのように内部で高い並列性を持つデバイス向けです。HDDには合わず、DB応答遅延の改善には不向きです。
  • B正しい。mq-deadlineはリクエストごとにデッドラインを設けることで、HDDのランダムI/Oがいつまでも後回しにされず最大待ち時間を抑えます。
  • C誤り。kyberスケジューラは高並列NVMeデバイス向けに設計されており、HDDのDB環境への適用は意図されていません。
  • D誤り。bfqはI/O帯域をプロセス間で比例配分することを目的としており、特定のDBプロセスのランダムI/O最大レイテンシを最小化することに特化していません。
LinuCレベル4 システムアーキテクトの問題を演習モードで解く