阅 读 文 章

寻找UNIX中CPU的“消耗大户”

[来源:网上转载 (http://www.chinaunix.net) | 作者:网友(sdccf) | 时间:2007-05-27 | 浏览:人次 ]


(石立 )

多用户的UNIX计算机系统在运行过程中,有时会感觉到运算速度突然慢下来,有时甚至连从键盘输入字符也得过好久才会有反应。有经验的人一定会知道,这时计算机中一定在运行一个非常耗费CPU的进程。这样的进程有时是某个人在执行一个很占CPU的程序,有时则可能是系统中出了意外情况,系统本身在进行处理。无论是哪种情况,系统管理员都应及时找出这样的进程,并做出相应的处理。 

UNIX虽然提供了“acct”等一系列记账程序,但这些程序只能在进程结束后才能显示运行时间和占用CPU时间等信息,不能实时计算单位时间内哪一个进程占用CPU时间最多。 

为此本人用shell语言编写了一段程序,利用UNIX提供的一些实用程序,实现了上述功能。 

此段程序中包含 ps、cut、diff等UNIX实用程序,下面先简单介绍一下这些实用程序的功能。 

 ps: 用来显示当前系统中进程的有关信息。用 -e 参数则显示系统中所有进程的信息。使用 -f 参数则显示各进程完整的信息; 
cut: 用于以列为单位对文件进行剪裁。参数“-c -15,33-”表示把输入文件每行前15个字符及第33个字符以后直到行尾的所有字符放入输出文件; 
echo: 用于向屏幕上显示提示信息; 
sleep: 可以让 shell 程序等待若干秒,然后再执行后面的语句; 
diff: 用于对两个文件进行比较,不同之处则显示出来; 
sort: 可对文件中的各行进行排序,排序结果可显示出来; 
grep: 可用来找出文件中满足一定条件的行。参数“^”表示找出第一列为空格的各行; 
|: 为管道的符号,可实现把前面命令的输出作为后面命令输入的作用,这样就可省略生成中间文件的步骤,提高执行效率; 
>: 表示对输出进行重定向,把本来应显示在屏幕上的东西输出到文件中。 


程序内容如下: 

 

ps -ef|cut -c -15,33->tt1
echo Please wait a while...
sleep 20
ps -ef|cut -c -15,33->tt2
echo Attention !
echo 
diff tt1 tt2|cut -c 2->tt3
sort tt3|grep '^ '|cut -c -83|grep -v 0:00
echo 
echo That is ok!
rm tt1 tt2 tt3
  


 

程序说明 


程序首先取得系统中所有进程的信息并把其中有用的字段放入临时文件tt1中。接着让程序等待20秒(时间可依具体情况进行调整)。 

然后再一次取得所有进程的信息,并把所有的字段放入临时文件tt2 中。 

对两个临时文件进行比较,找出20秒前后信息不同的那些进程(其中就有消耗CPU时间已经发生了变化的进程)。 

去掉进行比较时产生的“>”和“<”,把结果放入临时文件tt3中。 

对tt3中的内容进行排序,把耗费CPU时间发生变化的同一进程的前后信息排在一起。grep“^”则是用来去掉执行此shell程序时产生的一些中间命令进程的信息。 

再用cut删去每行中过长的进程信息,使输出更加清晰。而grep -v 0:00 则用来去掉20秒前后只出现一次的进程。程序执行至此,在20秒前后耗费CPU时间不同的进程就显示在屏幕上了,从中可以很容易地找出所要找的进程。最后为了不在系统中留下无用的垃圾文件,还要把三个临时文件全都删去。



 liujinbo 回复于:2003-04-01 12:37:11

看不出来!


 一生不变 回复于:2003-04-01 12:54:48
论坛热门帖子: [lch203] 写得蛮好的linux学习笔记(10-21)
[黑马制造] 学习java的30个目标(10-19)
[笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19)
[udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18)
[沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18)
TAG标签: 大户 消耗 寻找 进程 程序 文件 信息 回复 进行 显示

最新评论 共有0位网友发表了评论

发表评论

评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名:(注册)
密码:
验证码:
匿名发表

网站地图友情连接交流论坛网站投稿广告服务联系我们留言本站长统计
Some rights reserved: www.chmhome.com, 鄂ICP备07010232号 E-mail:chinakafei@live.com,QQ:552766
中国咖啡技术网(Chmhome):国外编程技术书籍,中文编程手册,经典编程文章,交流技术,技术软件下载,计算机论文,毕业论文.