LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 753|回复: 2

硬盘IO为什么load average这么大?瓶颈在何处?

[复制链接]
发表于 2009-4-22 14:04:19 | 显示全部楼层 |阅读模式
具体是这样的一个应用:
gzip -dc /disk1/{f1.gz,f2.gz,.....} |dtrans -
软硬件环境:intel DG43NB主板+E5300, os: centos5.3

fn.gz这样的文件大约100多个,占空间20G左右。dtrans读取解压后的数据生成400多K大小的单个文件,存放在硬盘disk2上,占用空间100多G。disk1是sata盘,disk2是ide盘。

现在的问题是,执行上述操作时系统反应很慢,load average在8~10之间,但CPU占用很小,执行完一次这样的作业,gzip和dtrans占用的CPU时间都不到10分钟,但整个过程耗时2个多小时。观察disk2硬盘空间减少的速度,大约20多MB每秒,并没有达到极限(cp对拷大约有50MB的速度)。

我觉得不理解的是系统反应慢,执行一个ls命令要等好几秒,即使在没有io操作的disk3硬盘上也是这样。请各位高手诊断一下,有没有改善的余地。
发表于 2009-4-22 15:42:35 | 显示全部楼层
不知道说的对不对
load average是在特定时间间隔内运行队列中的平均进程数,并且它是些没有在等待I/O操作的结果,没有主动进入等待状态(也就是没有调用'wait'),没有被停止.这样的进程。
cpu处理事务是有很多个时间片,轮流处理一些任务,看上去像是多线程。cpu某个进程的占有大小是指cpu在处理这个进程所花费的时间片和总的时间片的百分比。
你有100多个的压缩拷贝进程,所以loadaverage特别高。而cpu占有不很高。我觉得是CPU处理多线程的能力不够所致。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-22 23:40:24 | 显示全部楼层
楼上的基本概念很清楚!

试了一下,把disk2换成sata盘,速度提高了一倍左右, 系统反应也明显快了!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表