天下网吧 >> 网吧天地 >> 网吧技术 >> 网吧系统 >> 正文

UNIX系统里最费CPU的进程要如何揪出

2013-3-7网络整理佚名

  前面的一篇文章中我们曾向大家介绍了在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的进程的方法就是这样了,大家如果还有什么想知道的地方可以去本站的网吧系统栏目去查找,如果找不到相关内容,可以留言一起讨论,当然如果大家有什么好的资料也可以和我们一起分享哦! 

本文来源:网络整理 作者:佚名

声明
声明:本站所发表的文章、评论及图片仅代表作者本人观点,与本站立场无关。若文章侵犯了您的相关权益,请及时与我们联系,我们会及时处理,感谢您对本站的支持!联系Email:support@txwb.com,系统开号,技术支持,服务联系QQ:1175525021本站所有有注明来源为天下网吧或天下网吧论坛的原创作品,各位转载时请注明来源链接!
天下网吧·网吧天下
  • 本周热门
  • 本月热门
  • 阅读排行