在mdadm RAID 1arrays上有两个磁盘的主机上运行的容器上,我尝试过没有成功地将名为ci的LXD容器的磁盘IO限制为:
lxc config device set ci root limits.read 30MB lxc config device set ci root limits.write 10MB
但是,当在容器上运行例如这个命令时:
dd if=/dev/zero of=/root/testfile bs=1G count=10 oflag=direct
其结果是磁盘的整体容量大约为130MB / s ,而不是写入操作约为10MB / s的预期结果:
10737418240 bytes (11 GB, 10 GiB) copied, 81,3877 s, 132 MB/s
在主机atop运行也证实了这一点:
我怎样才能有效地限制容器的磁盘IO,这样不pipe发生什么事情,主机磁盘的性能都不会被过度使用 ?
在第二个testing中,我在guest虚拟机和主机上同时运行与上面相同的dd命令,但主机没有优先级:
一些额外的信息:
在最大的RAIDarrays之上,根文件系统安装在LVM卷组上
root@server ~ # lvs LV VG Attr LSize root vg0 -wi-ao---- 2,72t swap vg0 -wi-ao---- 4,00g
LXD存储后端是dir
我可以区分磁盘,如果这可能有助于限制容器的磁盘IO,例如具有专用于LXD的ZFS的RAIDarrays。 会有帮助吗?
I / O限制在容器文件系统位于块设备上时起作用,但在使用10.0.9等旧版本时,不能在mdadm RAID等虚拟设备上运行。
更新到版本10.15后,限制工作。 在Ubuntu中,您可以更新:
sudo add-apt-repository ppa:ubuntu-lxc/lxd-stable sudo apt-get update sudo apt-get install lxd
有关更多详细信息,请参阅https://discuss.linuxcontainers.org/t/limiting-disk-io-on-lxd-containers/261上的讨论以及https://github.com/lxc/上的未解决问题LXD /问题/ 3515