20.42. ゲスト仮想マシンのリソースの管理
virsh では、ゲスト仮想マシンベースでリソースをグループ化し、割り当てることができます。これは、cgroups を作成し、ゲスト仮想マシンの代わりにこれを管理する libvirt デーモンによって管理されます。システム管理者ができることは、指定したゲスト仮想マシンに対して調整可能パラメーターを照会するか設定することだけです。
libvirt
サービスは、以下の cgroups を使用して仮想マシンのチューニングと監視を行います。
- memory - メモリーコントローラーにより、RAM の制限やスワップの使用量を設定し、グループ内の全プロセスの累積使用量を照会できます。
- cpuset - CPU セットコントローラーは、グループ内のプロセスを CPU セットにバインドし、CPU 間の移行を制御します。
- cpuacct - CPU アカウンティングコントローラーは、プロセスのグループに対する CPU 使用率の情報を提供します。
- cpu - CPU スケジューラーコントローラーは、グループ内のプロセスの優先順位を制御します。これは、nice レベルの権限を付与するのと似ています。
- devices - デバイスコントローラーは、文字デバイスおよびブロックデバイスのアクセス制御リストを付与します。
- freezer - フリーザーコントローラーは、グループ内のプロセスを一時停止して再開します。これは、グループ全体の SIGSTOP と似ています。
- net_cls - ネットワーククラスコントローラーは、プロセスを tc ネットワーククラスに関連付けることで、ネットワークの使用率を管理します。
cgroup は、libvirt で
systemd
によって設定されています。以下の virsh 調整コマンドは、cgroup の設定方法に影響を及ぼします。
- schedinfo - 「スケジュールパラメーターの設定」 で説明しています。
- blkdeviotune - 「ディスク I/O スロットリング」 で説明しています。
- blkiotune - 「ブロック I/O パラメーターの表示または設定」 で説明しています。
- domiftune - 「ネットワークインターフェイスの帯域幅パラメーターの設定」 で説明しています。
- memtune - 「メモリーの調整の設定」 で説明しています。
cgroups の詳細は、Red Hat Enterprise Linux 7 Resource Management Guide を参照してください。