我的机器上有一个奇怪的情况。我有多个外部 USB 3.0 驱动器执行大量 IO(每个大约 70-100MBps,复制磁盘映像或使用类似的工具dd
),但系统 SSD 驱动器上的 IO 非常低。
我可以很好地在每个驱动器上运行高 IO 操作,但是一旦我使用 3 个以上的驱动器,即使我的 CPU、内存和系统 IO 使用率很低,我的系统也会变得无法使用。我可以ionice
进行一些有帮助的操作,但我仍然遇到同样的瓶颈。
这个瓶颈可能在哪里?
眼镜:
i7 处理器 12GB 内存,
内部系统驱动器是 SSD
所有外部都是 USB 3.0 5400-7200RPM,
Ubuntu 14.04 x64。
当遇到瓶颈时,RAM 使用率 <50%,swap 已使用 <1GB,系统 IO 只是运行 Ubuntu 所需的一切,而不在那里运行任何繁重的操作,CPU 在所有内核上的使用率 <30%。
发生这种情况的原因是页面缓存被这些大型读/写操作填满,并且页面缓存是系统范围的,而不是每个磁盘。我在 Unix StackExchange 上发布了一个类似的问题并得到了答案,这使我能够使用命令跳过缓存
dd
...