我正在尝试将虚拟机使用的所有内存限制为特定值。
在 Ubuntu 服务器上,将限制设置为“libvirt-qemu”可以解决问题。但在 CentOS 中,它会创建 libvirt/qemu/virtual-machine-name,并且似乎无法为虚拟机设置全局内存限制;唯一的方法是更改在 qemu 目录下创建的虚拟机的限制内存。
是否可以设置全局 cgroup 内存限制?
mount {
cpuset = /cgroup/cpuset;
cpu = /cgroup/cpu;
cpuacct = /cgroup/cpuacct;
memory = /cgroup/memory;
devices = /cgroup/devices;
freezer = /cgroup/freezer;
net_cls = /cgroup/net_cls;
blkio = /cgroup/blkio;
}
group mynamekvm {
perm {
admin {
uid = root;
gid = root;
}
task {
#uid of qemu and gid of kvm
uid = 107;
gid = 37;
}
}
memory {
memory.limit_in_bytes = 61G;
}
}
我在 cgrules.conf 中进行了此项设置
qemu memory mynamekvm
并重新启动 cgconfig 和 libvirtd 并重新启动虚拟机,
但仍然
mynamekvm/memory.usage_in_bytes is 0
知道如何在 centOS 系统上的 libvirt 中设置限制吗?
答案1
配置和Ubuntu有点不同。您需要CGROUP_DAEMON=sets:name
添加/etc/sysconfig/libvirtd
。
就你的情况来说
CGROUP_DAEMON=memory:/mynamekvm
重新启动所有相关服务,即 cgconfig、libvirt 和 guest。还要确保 selinux 配置正确,或者尝试禁用然后重新启动服务。