20.42. 管理客户机虚拟机的资源
virsh 允许根据每个虚拟机对资源的分组和分配。这由 libvirt 守护进程管理,后者代表客户机虚拟机创建 cgroups 并管理它们。系统管理员唯一保留的内容是查询或针对指定的客户机虚拟机设置可调项。
libvirt
服务使用以下 cgroups 来调整和监控虚拟机:
- 内存 - 内存控制器允许在 RAM 和交换使用量上设置限制,并查询组中所有进程的累积使用
- Cpuset - CPU 集控制器将一个组中的进程绑定到一组 CPU,并控制在 CPU 间的迁移。
- cpuacct - CPU accountingt 控制器提供有关一组进程的 CPU 用量的信息。
- cpu - CPU 调度程序控制器控制组中的进程的优先级。这和授予 nice 级别的权限类似。
- devices - 设备控制器授予对字符和块设备的访问控制列表。
- freezer - freezer 控制器暂停并恢复执行组中的进程。这和整个组的 SIGSTOP 类似。
- net_cls - 网络类控制器通过将进程与 tc 网络类关联来管理网络利用率。
cgroup 由 libvirt 中的
systemd
设置。以下 virsh tuning 命令影响了 cgroup 配置的方式:
- schedinfo - 中描述的 第 20.43 节 “设置计划参数”
- blkdeviotune - 中描述的 第 20.44 节 “磁盘 I/O 轮转”
- blkiotune - 中描述的 第 20.45 节 “显示或设置块 I/O 参数”
- domiftune - 中描述的 第 20.12.5 节 “设置网络接口带宽参数”
- memtune - 描述 第 20.46 节 “配置内存调整”
如需有关 cgroups 的更多信息,请参阅 Red Hat Enterprise Linux 7 资源管理指南。