文章中提到,若使用writeback特性,需创建mem和blkio子系统,AnolisOs会让两个子系统进行关联。(手动测试也确实是这样) sudo mkdir /sys/fs/cgroup/blkio/blkcg1 sudo mkdir /sys/fs/cgroup/memory/memcg1
但是我们在实际使用时发现,如果通过k8s创建容器,那么其mem是与root的blkio相关联。结果就是writeback特性并未生效
文章中提到,若使用writeback特性,需创建mem和blkio子系统,AnolisOs会让两个子系统进行关联。(手动测试也确实是这样) sudo mkdir /sys/fs/cgroup/blkio/blkcg1 sudo mkdir /sys/fs/cgroup/memory/memcg1
但是我们在实际使用时发现,如果通过k8s创建容器,那么其mem是与root的blkio相关联。结果就是writeback特性并未生效
我觉得 这可能是由于Anolis的writeback功能没有正确配置导致的。你需要检查Anolis的配置文件,确保它正确地配置了mem与blkio子系统的关联。你可能还可以检查Kubernetes的配置文件,确保它正确地指定了Anolis的writeback功能。
cgroup writeback 的使能需要先进程 pid 写进 blkcg, 然后再写进 memcg。 可以采用如下方法确保上述顺序: cgroup合井 blkio 和memory 组,修改/etc/systemd/system.conf JoinControllers=cpu,cpuacct net_cls,net_prio memory,blkio
重做内核镜像: sudo mkinitrd /boot/initramfs-$(uname -r).img $(uname -r) –force
重启宿主机 reboot
验证: ls /sys/fs/cgroup/执行后,会出现memory,blkio 的合并目录