在天下网吧-网吧系统-网吧天下栏目上一篇文章中,我们看到了:
前面的一篇文章中我们曾向大家介绍了在Unix系统下实现网络打印的方法,不知道大家觉得怎么样呢!现在我们要向大家介绍的一下UNIX系统里最费CPU的进程要如何揪出!下面大家还是跟着我们txwb网吧联盟的网吧系统栏目一起去看看吧!
虽然UNIX系统提供了acct等一系列记账程序,可是这些程序只能在进程结束后才能显示运行时间和占用CPU时间等信息,不能实时计算单位时间内哪一个进程占用CPU时间最多。
我们可以用shell语言编写一段程序,然后利用UNIX提供的一些实用程序,实现了这样的功能。
程序内容主要如下介绍:
ps-efcut-c-15,33->tt1
echoPleasewaitawhile...
sleep20
ps-efcut-c-15,33->tt2
echoAttention!
echo
difftt1tt2cut-c2->tt3
sorttt3grep’^’cut-c-83grep-v0:00
echo
echoThatisok!
rmtt1tt2tt3
此段程序首先取得系统中所有进程的信息并把其中有用的字段放入临时文件tt1中。接着让程序等待20秒(时间可依具体情况进行调整)。接着再一次取得所有进程的信息,并把所有的字段放入临时文件tt2中。
这样对两个临时文件进行比较,找出20秒前后信息不同的那些进程(其中就有消耗CPU时间已经发生了变化的进程)。去掉进行比较时产生的“>”和“<”,把结果放入临时文件tt3中。
还会对tt3中的内容进行排序,把耗费CPU时间发生变化的同一进程的前后信息排在一起。grep“^”则是用来去掉执行此shell程序时产生的一些中间命令进程的信息。再用cut删去每行中过长的进程信息,使输出更加清晰。grep-v0:00是用来去掉20秒前后只出现一次的进程。
这样,程序执行到这里,在20秒前后耗费CPU时间不同的进程就显示在屏幕上了,从中可以很容易地找出所要找的进程。最后为了不在系统中留下无用的垃圾文件,还要把三个临时文件全都删去。
揪出UNIX系统里最费CPU的进程的方法就是这样了,大家如果还有什么想知道的地方可以去本站的网吧系统栏目去查找,如果找不到相关内容,可以留言一起讨论,当然如果大家有什么好的资料也可以和我们一起分享哦!
好了,关于【UNIX系统里最费CPU的进程要如何揪出】这个问题今天就说到这,有些地方说得不是很好,如果你有更好的补充请发表评论或者上网吧论坛提出吧。网吧论坛地址:http://bbs.txwb.com
如果有下一页,请点击下一页哦,文章还没说完呢。
本文来源:网络整理 作者:佚名