14.18. 管理客户机虚拟机的资源
virsh 允许基于每个客户机虚拟机对资源进行分组和分配。这由 libvirt 守护进程管理,它代表客户机虚拟机创建 cgroups 并管理它们。系统管理员唯一剩下可以查询或设置对指定客户机虚拟机的可调项。可使用以下可调项:
- Memory - 内存控制器 允许对 RAM 和 swap 使用量设置限制,并查询组中所有进程的累积用量
- Cpuset - CPU 设置控制器将组中的进程绑定到一组 CPU 并控制 CPU 之间的迁移。
- cpuacct - CPU 记帐控制器为一组进程提供 CPU 使用量的信息。
- cpu - CPU 调度程序控制器控制组中的进程的优先级。这类似于授予 nice 级别特权。
- devices - 设备控制器在字符和块设备上授予访问控制列表。
- freezer - freezer 控制器暂停并恢复执行组中的进程。这和整个组的 SIGSTOP 类似。
- net_cls - 网络类控制器通过将进程与 tc 网络类关联来管理网络利用率。
在创建组层次结构 cgroup 会将挂载点和目录设置完全保留为管理员的自由裁量,而不只是向
/etc/fstab
添加一些挂载点。需要设置目录层次结构,并且决定进程如何放入其中。这可以通过以下 virsh 命令完成:
- schedinfo - 所述 第 14.19 节 “设置调度参数”
- blkiotune- 如下所述 第 14.20 节 “显示或设置块 I/O 参数”
- domiftune- 所述 第 14.5.9 节 “设置网络接口带宽参数”
- memtune - 所述 第 14.21 节 “配置内存调整”