我目前正在部署一个带有mesos/marathon的kvm/qemu虚拟机。在marathon中,我使用内置的mesos命令执行器并运行脚本。
virsh start centos7.0; while true; do echo 'centos 7.0 guest is running'; sleep 5; done
注意while循环仅用于保持任务运行。我的问题是我无法让mesos监视虚拟机的资源使用情况。
当marathon在mesos代理上部署此任务时,它正在创建一个使用内存和cpu cgroup的容器。
/sys/fs/cgroup/cpu/mesos/31b48dc3-6f09-4b5a-8964-b82d711bb895
/sys/fs/cgroup/memory/mesos/31b48dc3-6f09-4b5a-8964-b82d711bb895
启动虚拟机时,virsh start命令会向libvirtd发送请求。libvirtd然后读取位于/etc/libvirt/qemu/中的guest.xml文件,然后向qemu/kvm驱动程序发送一个请求来部署它。
在guest.xml文件中,我使用一个自定义分区cgroup切片来监视虚拟机的使用情况。
https://libvirt.org/cgroups.html
(对于每个cgroup)
/sys/fs/cgroup/???/vmholder.slice/machine qemu\x2d1\x2dcentos7.0\x2dclone.scope
我试过的。我试图通过执行cgdelete-rcpu从这个片中删除我的内存/cpu cgroup,memory:vmholder.slice
然后将我的qemu客户进程添加到mesos-g cpu中,memory:mesos/31b48dc3-6f09-4b5a-8964-b82d711bb895 客人pid
当我运行cat/proc/5531/cgroup命令时
11:perf_event:/vmHolder.slice/machine-qemu\x2d1\x2dcentos7.0\x2dclone.scope
10:pids:/
9:devices:/vmHolder.slice/machine-qemu\x2d1\x2dcentos7.0\x2dclone.scope
8:cpuset:/vmHolder.slice/machine-qemu\x2d1\x2dcentos7.0\x2dclone.scope/emulator
7:net_prio,net_cls:/vmHolder.slice/machine-qemu\x2d1\x2dcentos7.0\x2dclone.scope
6:freezer:/vmHolder.slice/machine-qemu\x2d1\x2dcentos7.0\x2dclone.scope
5:blkio:/vmHolder.slice/machine-qemu\x2d1\x2dcentos7.0\x2dclone.scope
4:hugetlb:/
3:cpuacct,cpu:/mesos/31b48dc3-6f09-4b5a-8964-b82d711bb895
2:memory:/mesos/31b48dc3-6f09-4b5a-8964-b82d711bb895
1:name=systemd:/vmHolder.slice/machine-qemu\x2d1\x2dcentos7.0\x2dclone.scope
它表明我正在使用这些控制器,但是当我运行systemd cgtop时,它并没有增加vm的内存使用量。我不知道下一步该怎么办。有什么建议吗?
暂无答案!
目前还没有任何答案,快来回答吧!