我有两个具有以下cgroup设置的LXC容器:
lxc.cgroup.blkio.weight = 200
lxc.cgroup.cpu.shares = 200
and
lxc.cgroup.blkio.weight = 800
lxc.cgroup.cpu.shares = 800我已经在/sys/fs/cgroup/blkio/lxc/test1-lxccontainer/blkio.weight中验证了在主机操作系统上确实设置为200。
我已经证实,cpu.shares被分成了80%的集装箱1和20%的集装箱2。
但是,当我在两个容器中运行这个命令时:
# write a 10GB file to disk
dd bs=1M count=10000 if=/dev/zero of=1test conv=fdatasync我对以下内容进行了类似的测试:
davidparks21@test-cgroups1:/tmp$ time sh -c "dd if=1test of=/dev/null bs=1M"
10000+0 records in
10000+0 records out
10485760000 bytes (10 GB) copied, 37.9176 s, 277 MB/s
real 0m37.939s
user 0m0.004s
sys 0m24.306s在主机操作系统上,在iotop中看到的IO速度在两个容器之间几乎相同。
在这种情况下,我希望看到容器2命令80%的IO访问。
发布于 2013-08-24 02:02:17
这里的问题是,您需要使用公平调度程序,我使用了错误的调度程序,并且错误地读取了一个设置(以为我使用的是公平调度程序,但实际上并非如此)。切换到正确的IO调度程序解决了问题。
若要更改IO调度程序(取自这里):
echo cfq > /sys/block/{DEVICE-NAME}/queue/scheduler发布于 2013-08-23 13:02:32
这可能是系统缓存中的dd命令问题--首先尝试刷新缓存:
echo 3 > /proc/sys/vm/drop_caches用"nocache“选项启动dd命令?
https://unix.stackexchange.com/questions/69300
复制相似问题