最近在 docker 上跑 jellyfin 的时候碰到一个问题, 但是我不知道是怎么引起的, 对 io 这块的硬件处理不熟悉.
表现情况为, 当出现该问题时, iowait 直接 90%以上, 但是磁盘读取只有 10MB/s 左右, 没有大量的写入, 就我观察其他正常运行的程序磁盘读取 15MB/s 也不会引起高 cpu 使用乃至 90%的 iowait, 那这种情况应该不是磁盘瓶颈的问题吧?
同时 ps 查看进程后, docker 内 jellyfin 的 ffprobe 子进程(应该是正常的扫媒体文件)的 state 为 D(uninterruptible sleep (usually IO)), 而且 grep 后 D 状态的进程都是 ffprobe.
所以我粗略估计, 高 iowait 的问题应该是 jellyfin 扫库引起的, 但是扫库的时候该问题不是必现, 这是其一, 其二是如果不是磁盘的读写瓶颈, 到底为什么会导致 iowait, 是代码的问题?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.