每次 docker pull 就会有很高的 iowait,这个该怎么解决呢?

2023-05-03 10:46:45 +08:00
 MrLonely
不光是 docker pull ,我本地打包好的上传到 docker host 里用
docker load -i mycontainer.tgz
一样也是卡住很久,一看监控全是 iowait 。

下意识是以为硬盘有问题,但是测试下来好像也还行。




我的环境是 NUC11 ,SSD 用的是 PM9A1 ,Host OS 是 Win Server 2022 ,然后装了 VMware Workstation 16.1.2 ,在 Alpine 虚拟机里跑 Docker 。

给 Alpine 分配了 4C8G 。
所以这种情况下如何进一步排查呢?

是 Alpine 的问题还是说 docker pull 和 load 本来就这么慢?
但是好像我在 macOS 里的 Docker Desktop 就一般都很快啊。
1576 次点击
所在节点    Docker
8 条回复
lhx2008
2023-05-03 12:38:54 +08:00
你这个磁盘性能也就一般,跟 mac 没得比,docker load 的时候,ioutil 写速度打满了没
dw2693734d
2023-05-03 14:31:50 +08:00
搞个 nvme 的硬盘,读写 5000MB/s
cxtrinityy
2023-05-03 14:34:31 +08:00
我 openwrt docker 里 pull 也是 iowait ,还有刚启动 docker 起服务也卡 io ,不放系统盘放下载盘又怕看 emby 时候各种读写卡 io 导致整个 docker 服务都卡
chenluo
2023-05-03 14:56:39 +08:00
这个测试是什么参数? bs/depth 之类的. disk stats 结果里还有个 util,是不是接近 100%了?
本身 PM9A1 的顺序读写肯定不止这个数.
MrLonely
2023-05-03 19:53:32 +08:00
@lhx2008 @dw2693734d 前面没说清楚,我这个磁盘测试是在 alpine 里测试的。PM9A1 是个 PCIe4.0 的 M.2 盘。在宿主机里测硬盘是能有 5000M/s 的。macOS 的 SSD 速度会更快一点,但是相比 VM Host 的硬盘也就百分之二三十的提升吧。感觉不应该造成这么大的差距。

ioutil 应该怎么看速度打没打满呀?


@chenluo
fio --name=testfile --ioengine=sync --rw=randwrite --bs=4k --numjobs=1 --size=1G --runtime=60 --time_based --end_fsync=1
是这行代码在 alpine 里跑的测试。
如果是放在 PM9A1 上的 VM Disk ,这个测试结果是正常的吗?如果是直接在 PM9A1 上读写,确实是有 5000M 的。
dw2693734d
2023-05-03 22:19:08 +08:00
@MrLonely 宿主是 windows 吗
MrLonely
2023-05-03 22:43:14 +08:00
@dw2693734d 是,裸机装的 Windows Server 2022 ,然后用 VMware Workstation 装 Alpine 运行 Docker 。
dw2693734d
2023-05-03 23:34:42 +08:00
@MrLonely 那得把宿主机换成是 linux 的要好点吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/936973

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX