/ sys / fs / cgroup / blkio / docker / [containerID] / blkio文件未记录Docker容器IO

时间:2018-10-26 14:14:06

标签: docker io measurement cgroups

我想测量在Docker容器中运行的应用程序的IO(数据读/写到HDD)。因为有更多的容器, 我决定监视相应容器的 blkio 文件。问题是,所有 blkio 文件都没有 在容器中写入大量数据时进行更新。

我在做什么:

  • 我已经创建了一个基于Fedora的容器:docker run -ti fedora /bin/bash
  • 在容器中运行以下命令: dd if=/dev/urandom of=./outfile bs=1M count=1000(创建1GB文件)
  • dd正在运行时,我正在观看其中的所有 blkio 文件 使用/sys/fs/cgroup/blkio/docker/[containerID]/的{​​{1}}目录

问题在于watch -n 0.2 cat *完成后,文件在执行过程中都没有更新。 (我仔细检查了dd,以确保我在看正确的容器。)

为了确保将数据写入磁盘,并且不在操作系统缓冲区中,我在容器中运行了相同的命令, 但我正在查看整个系统containerID blkio 文件。在这种情况下,文件是 在watch -n 0.2 cat /sys/fs/cgroup/blkio*执行期间和执行之后(操作系统刷新到缓冲区时)进行了更新。

我还将dd设置为50MB [1],这应该确保将数据写入磁盘并且不缓存在内存中。

我正在使用Fedora 28和Docker 18.03.1-ce。 PC具有32GB RAM和500GB HDD。

为什么IO操作未记录在容器的 blkio 文件中?

[1] https://www.kernel.org/doc/Documentation/sysctl/vm.txt

0 个答案:

没有答案