我在 Ubuntu 12.04 上使用 docker 1.4.0 和 lxc-1.0.6 以及 cgroup-lite-1.1.5。我有 3 个硬盘 ( /dev/[sdb-sdd]
),我从 3 个不同的容器向它们写入数据。它们只有一个 XFS 分区,分别挂载在 /mnt/vol[1-3] 中。我使用 docker 启动容器(使用 lxc exec-driver):
docker run --rm=true -v /mnt/vol1:/mnt -ti stackbrew/ubuntu:trusty /bin/bash
当我dd
从三个并发容器中执行操作时:
dd if=/dev/zero of=/mnt/testfile bs=4M count=250 oflag=direct
我观察到,尽管设备各不相同(当然),但单元在它们之间的分配还是很公平的bps
。如果我执行单个容器,我观察到 60 MB/s(这些是真的很旧的磁盘)。如果我执行两个容器,我观察到 30 MB/s,三个容器则为 20 MB/s。
我尝试过的调度程序、权重和节流阀单元似乎都没有什么效果。有什么想法吗?