Docker 的 IO 效率比较

Docker 的 IO 效率比较。- 宿主机本身 IO 效率 >= 容器内 IO 效率 > 挂载 IO 效率 - 容器内运行明显比挂载到容器的 IO 效率更高

Linux 磁盘 IO 测试

Docker 的 IO 效率比较

结论

  • 宿主机本身 IO 效率 >= 容器内 IO 效率 > 挂载 IO 效率
  • 容器内运行明显比挂载到容器的 IO 效率更高
  • 在宿主机上运行和容器内运行,IO 效率差别不大

测试

1
2
3
4
5
# 测试写性能(读取 /dev/zero 基本不消耗IO读取性能)
dd if=/dev/zero of=test bs=8k count=100000 oflag=direct

# 测试读性能(写入 /dev/null 基本不消耗IO写入性能)
dd if=test of=/dev/null bs=8k count=100000 iflag=direct

以下针对 800MB 和 80MB 数据各进行三次测试,得出结果

宿主机:Windows 10 专业版 3.10GHz(12CPU) 16G GTX730

容器:Linux 5b5abbcce798 5.10.16.3-microsoft-standard-WSL2 #1 SMP Fri Apr 2 22:23:49 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

数据量 类型 容器内(容器内运行命令) 挂载(容器内运行命令) 宿主机本身(宿主机运行命令)
8k * 100_000 写入 103MB/s 74.6MB/s 118MB/s
读取 111MB/s 80.1MB/s 139MB/s
8k * 10_000 写入 115MB/s 72.3MB/s 121MB/s
读取 132MB/s 80.1MB/s 137MB/s
Licensed under CC BY-NC-SA 4.0
Gear(夕照)的博客。记录开发、生活,以及一些不足为道的思考……