我有一个工作站(2 个 Intel Xeon 系列 CPU 和 128GiB 的 RAM)运行多个虚拟机,虽然组合 CPU 使用率 <30%,但平均负载在 20 到 25 之间。例如,如果我执行一个tar -xzvf vm_data.tgz --directory vm4/ --strip-components=1
命令,那么该gzip
过程是90% -其99%的时间已被I / O和命令需要永远完成:
另一方面,与 SATA 3.0 或 SSD(我使用的是单个金士顿 SA400S37960G SSD)硬件限制相比,对磁盘的实际读取和写入非常低。
什么可能导致进程(gzip
在我的示例中)在 I/O 之后等待而实际磁盘读取和写入似乎非常低?我的第一个想法是,也许系统中断非常高,这就是阻塞 I/O 的原因,但根据/proc/interrupts
这一点,情况似乎并非如此,因为没有一个计数器在快速增加。
许多年前,我的生产 MySQL 数据库遇到了非常类似的问题。事实证明,它的文件非常碎片化,备份它们会导致所有其他磁盘操作永远无法完成。
请发布以下输出:
find vm4 -type f | while read filename; do sudo filefrag "$filename" | egrep -v ": 1 extent|: 0 extents"; done | sort
Run Code Online (Sandbox Code Playgroud)
为了解决这个问题,如果我的猜测是正确的,您需要对虚拟机文件进行碎片整理。
归档时间: |
|
查看次数: |
295 次 |
最近记录: |