Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 操作系统 > 其他操作系统 > 寻找UNIX中CPU的“消耗大户”
【标  题】:寻找UNIX中CPU的“消耗大户”
【关键字】:C,UNIX,CPU,UNIX,CPU
【来  源】:网络

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

Your Ad Here    多用户的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时间不同的进程就显示在屏幕上了,从中可以很容易地找出所要找的进程。最后为了不在系统中留下无用的垃圾文件,还要把三个临时文件全都删去。
UNIX系统下各文件的作用:【上一篇】
在SCO下直接使用ISO镜像安装软件的方法:【下一篇】
【相关文章】
  • UNIX系统下各文件的作用
  • 操作系统全接触之UNIX系统
  • 安装SCO操作系统常见问题的对策
  • SCO OpenServer Release 5产品包括什么
  • Sco Openserver 5.0.4的单用户License
  • unix口令文件介绍
  • SCO UNIX基础讲座--第十二讲:使用 TCP/IP
  • SCO UNIX基础讲座--第十一讲:TCP/IP 管理
  • SCO UNIX 讲座
  • UnixWare 7 root口令遗失的解决方法
  • 【随机文章】
  • BitTorrent 协议规范(BT协议集合)十七
  • DWDM在城域网中的发展与应用
  • 虚线的制作
  • 如何关闭telnet等服务的反向地址解析
  • Linux下网络路由防火墙配置和流量检测管理
  • Photoshop CS实例教程:画齿轮
  • 旧闻:微软Vista副帅跳槽Amazon
  • LCS问题算法之VB.net版
  • 揭开11g的最大谜团--b/g混合模式
  • 软件生命周期[转载]
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.