LinuCレベル4 システムアーキテクト 性能・拡張性の設計 問20
性能・拡張性の設計/性能の改善1台のサーバーでオンライン処理とバッチ処理を同時に動かす。リソース配分の調整方法に関する説明として、誤っているものはどれか。
当サイトのオリジナル問題(LinuCレベル4 システムアーキテクトの出題範囲「性能・拡張性の設計」に対応。実際の試験問題ではありません)
- Areniceコマンドでバッチプロセスのniceバリューを下げると、そのプロセスのCPU時間だけでなくディスクI/OやメモリもOS上の他プロセスより低い優先度で確保されるようになる
- Bcgroupのcpu.weightによりプロセスグループへのCPU時間の割り当て比率を設定でき、バッチ処理を低い重みのグループに入れてオンライン処理が優先的にCPUを使えるようにできる
- Ccgroupのioコントローラー(v2)でプロセスグループごとにディスクI/Oの帯域上限を設定でき、バッチ処理のI/O使用量を制限してオンライン処理への影響を抑えられる
- Dtuned-adm activeコマンドは現在適用されているプロファイルを確認し、tuned-adm recommendコマンドはシステム特性に応じた推奨プロファイルを提示する
正解:A
解説
Linuxのnice/reniceはCPUスケジューラの優先度(タイムスライス配分)のみを制御します。ディスクI/Oやメモリのアロケーションはniceバリューの影響を受けません。I/O優先度は別途ioniceコマンドまたはcgroupのioコントローラーで設定し、メモリはcgroupのmemoryコントローラーで制限します。複数のリソースを同時にコントロールするにはcgroupを使います。
選択肢ごとの解説
- A正しい(誤っている記述)。reniceはCPUスケジューラの優先度だけを制御します。ディスクI/Oはioniceまたはcgroupのioコントローラー、メモリはcgroupのmemoryコントローラーで個別に設定する必要があります。
- B誤り(正しい記述)。cgroupのcpu.weightはCPU時間の相対的な割り当て比率を指定します。バッチ処理を低い重みのグループに入れることで、競合時にオンライン処理が優先的にCPUを使えます。
- C誤り(正しい記述)。cgroupのioコントローラー(v2)では、プロセスグループごとにI/O帯域幅やIOPSの上限を設定できます。バッチ処理のディスクI/Oを制限してオンライン処理への影響を最小化できます。
- D誤り(正しい記述)。tuned-adm activeで現在のプロファイルを確認し、tuned-adm recommendでシステムに適したプロファイルを確認できます。tunedはプロファイルに基づきCPUスケーリング・I/Oスケジューラ・カーネルパラメータ等を一括調整します。