搜索
首页 电脑/网络 软件 系统软件

UNIX中最费CPU的进程是什么?

UNIX中最费CPU的进程是什么?

全部回答

2017-07-26

44 0
    多用户的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时间发生变化的同一进程的前后信息排在一起。

类似问题换一批

热点推荐

热度TOP

相关推荐
加载中...

热点搜索 换一换

电脑/网络
系统软件
硬件
电脑装机
程序设计
互联网
操作系统/系统故障
笔记本电脑
反病毒
百度
软件
软件
系统软件
多媒体软件
办公软件
网络软件
图像处理软件
系统软件
系统软件
举报
举报原因(必选):
取消确定举报