一次解决系统性能的日记(Solaris8)

bug id:有一台server(solaris 5.8),使用top测试,发现IDEL的CPU每次都是0%,但是查看各个进程使用的CPU时间百分比,没有一个进程的使用率高!
这是怎么回事呢?百思而不解,后来使用vmstat 2查看(一般的,第一行输出都是无用的,错误的),发现us的百分比是30%,而sy的百分比是60%,这就说明cpu时间都是在系统空间耗去的。(我们还有另外两台吃CPU很厉害的机子,但是都是很正常的吃的;在那两台机子上面,us的百分比是60%,而sy的百分比是30%)。

再使用命令prstat -cvm 查看,发现原来是这样的原因:几乎每时每刻系统都在运行ls date ftp这样的命令,然后
这些命令在系统空间就占去了几乎60%的CPU时间。而这些程序都是由另外的程序调用的,闪一下就执行完了,所以这些命令的PID几乎每时每刻都在变,所以catch不到它们,而且还都是运行在系统空间。

事情原来是这样的,有人写了个shell(用户的要求了),监控一个目录下是否存在文件,存在就会把它ftp到另外一个server上。这个shell是个循环的语句,每时每刻都在察看,所以就ls, date,ftp。造成系统空间的CPU居高不下!!
把那个shell程序停掉,CPU的Idel就变成99%了;而一开启这个程序呢?CPU使用率一下子就到100%了。

该如何解决这个问题呢?思索了好长时间都没有想到办法。
我们的leader告诉我,在循环语句中加入sleep 2或sleep 3试一下。果然,CPU的Idel变成90%了,呵呵,从来不知道sleep 2的威力如此之大!!!姜还是老的辣,我们leader果然厉害啦!
(本过程不能在Solaris 2.6中重现,因为prstat命令不支持拉)

文以记之,以飨来者!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值