子设备上的 cgroup 节流阀不起作用

子设备上的 cgroup 节流阀不起作用

我们正在运行启用了 devicemapper 的 Docker 容器CentOS 7 (3.10.0-514.10.2.el7.x86_64)
对于某些容器,我们可以通过指定父块设备轻松限制读取blkio.throttle.read_bps_device,但对于某些容器,它不起作用。

这是我们的lsblk

NAME                                  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                                     8:0    0   32G  0 disk
└─sda1                                  8:1    0   32G  0 part /
sdb                                     8:16   0  100G  0 disk
├─data-docker_thin_tmeta              253:0    0  512M  0 lvm
│ └─data-docker_thin                  253:2    0   90G  0 lvm
│   └─docker-8:1-151197496-c619...6ed 253:4    0   10G  0 dm
├─data-docker_thin_tdata              253:1    0   90G  0 lvm
│ └─data-docker_thin                  253:2    0   90G  0 lvm
│   └─docker-8:1-151197496-c619...6ed 253:4    0   10G  0 dm
└─data-data                           253:3    0    9G  0 lvm  /data

当我们在 cgroup 中指定以下内容时,它会适当限制某些容器的读取量:
echo "8:16 1000000" > blkio.throttle.read_bps_device

但对于其他容器,我们需要指定精确的设备,例如:
echo "253:4 1000000" > blkio.throttle.read_bps_device

有什么想法可以解释为什么父设备的节流有时8:16不起作用?

相关内容