Show Table of Contents

第4章 ユースケースシナリオ
本章には、cgroup の機能性を活用したユースケースシナリオを記載します。
4.1. データベース I/O の優先
独自の専用仮想ゲスト内でデータベースサーバーの各インスタンスを実行することにより、優先度に基づいてデータベースごとにリソースを割り当てることができます。次の例を検討してください: システムが 2 台の KVM ゲスト内で 2 つのデータベースを実行しています。一方のデータベースは優先度が高く、もう一方は優先度の低いデータベースです。両方のデータベースサーバーが同時に稼働すると、I/O スループットが低減し、両データベースからの要求に同等に対応します。図4.1「リソース割り当てを使用しない I/O スループット」 は、このシナリオを示しています。— 優先度の低いデータベースが起動されると (時間軸 45 前後)、I/O スループットが両データベースサーバーで同じとなっています。

図4.1 リソース割り当てを使用しない I/O スループット
優先度の高いデータベースサーバーを優先するには、予約済みの I/O 操作の高い数値を cgroup に割り当てる一方、優先度低いデータベースサーバーには予約済み I/O 操作の低い数値を cgroup に割り当てます。この設定は手順4.1「I/O スループットの優先度設定」 の手順にしたがって行います。作業はすべてホストシステム上で実行します。
手順4.1 I/O スループットの優先度設定
blkioサブシステムを/cgroup/blkiocgroup に接続します。~]#
mkdir /cgroup/blkio~]#mount -t cgroup -o blkio blkio /cgroup/blkio- 優先度の高い cgroup と低い cgroup を作成します。
~]#
mkdir /cgroup/blkio/high_prio~]#mkdir /cgroup/blkio/low_prio - 両仮想ゲスト (データベースサーバーを実行している) を示す PID を取得し、それら固有の cgroup に移動します。この例では、
VM_highは優先度の高いデータベースサーバーを実行している仮想ゲストを示し、VM_lowは優先度の低いデータベースサーバーを実行している仮想ゲストを示しています。以下はその例です。~]#
ps -eLf | grep qemu | grep VM_high | awk '{print $4}' | while read pid; do echo $pid >> /cgroup/blkio/high_prio/tasks; done~]#ps -eLf | grep qemu | grep VM_low | awk '{print $4}' | while read pid; do echo $pid >> /cgroup/blkio/low_prio/tasks; done high_priocgroup とlow_priocgroup の比を 10:1 に設定します。それらの cgroup 内のプロセス (前のステップでそれらの cgroup に追加した仮想ゲストを実行しているプロセス) は、それらのプロセスが利用可能なリソースのみを即時に使用します。~]#
echo 1000 > /cgroup/blkio/high_prio/blkio.weight~]#echo 100 > /cgroup/blkio/low_prio/blkio.weightこの例で、優先度の低い cgroup は、優先度の低いデータベースサーバーが約 10 % の I/O 操作を使用するのを許可する一方、優先度の高い cgroup は、優先度の高いデータベースサーバーが約 90 % の I/O 操作を使用するのを許可します。
図4.2「I/O スループットとリソース割り当て」 は、優先度の低いデータベースを制限し、優先度の高いデータベースを優先した結果を図示しています。データベースサーバーが適切な cgroup に移動されると (時間軸 75 前後) 即時に I/O スループットが 10:1 の比率で両サーバー間で分配されます。

図4.2 I/O スループットとリソース割り当て
あるいは、ブロックデバイス I/O スロットリングを使用して、優先度の低いデータベースの読み取り/書き込み操作を制限することができます。
blkio サブシステムに関するさらに詳しい情報は、「blkio」 を参照してください。

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.