5636网吧资讯

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

来源:欣欣时间:2017-08-25 17:42

  前面的一篇文章中我们曾向大家介绍了在Unix系统下实现网络打印的方法,不知道大家觉得怎么样呢!现在我们要向大家介绍的一下UNIX系统里最费CPU的进程要如何揪出!下面大家还是跟着我们5636网吧联盟的网吧系统栏目一起去看看吧!
  虽然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的进程的方法就是这样了,大家如果还有什么想知道的地方可以去本站的网吧系统栏目去查找,如果找不到相关内容,可以留言一起讨论,当然如果大家有什么好的资料也可以和我们一起分享哦! 

 669
以上内容整理自互联网,如有侵权请与小编联系,QQ: 2850592923。欢迎加入网吧业主交流群:609150654(可加)614859884(可加) 加微信群请添加:wbzz5636
5636增值联盟
上一篇 :DOS环境下怎么样来抓取窗口中的文本 下一篇 :在Unix系统下要如何来实现网络打印

相关推荐

5636搜索一下
登录