qileilove

blog已经转移至github,大家请访问 http://qaseven.github.io/

精通软件性能测试与LoadRunner最佳实战 连载六

  8.2.5  Linux操作系统进程监控技术

  Linux在进程监控方面同样出色,不仅可以通过图形用户界面的管理工具,还可以用命令方式显示进程相关信息。像“Windows的任务管理器”一样,在RedHat 9中可以通过单击“系统工具”→“系统监视器”,启动“系统监视器”,如图8-19所示。

图8-19 “系统监视器”对话框

  Linux系统提供了ps、top等查看进程信息的系统调用,通过结合使用这些系统调用,可以清晰地了解进程的运行状态以及存活情况,从而采取相应的措施,来确保Linux系统的性能。ps是目前在Linux下最常见的进程状况查看命令,是随Linux版本发行的,安装好系统之后,用户就可以使用。这里以ps命令为例,ps命令是最基本同时也是非常强大的进程查看命令。利用它可以确定有哪些进程正在运行及运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等。下面介绍一下ps命令的主要参数项的含义,如表8-2所示。

表8-2 ps命令的主要参数项说明

选 项 名 称

说    明

-A

显示所有程序

a

显示现行终端机下的所有程序,包括其他用户的程序

c

列出程序时,显示每个程序真正的指令名称,而不包含路径、参数或常驻服务的标示

-e

此参数的效果和指定“A”参数相同

e

列出程序时,显示每个程序所使用的环境变量

f

用ASCII字符显示树状结构,表达程序间的相互关系

-H

显示树状结构,表示程序间的相互关系

-N

显示所有的程序,除了执行ps指令终端机下的程序之外

s

采用程序信号的格式显示程序状况

S

列出程序时,包括已中断的子程序资料

-t<终端机编号>

指定终端机编号,并列出属于该终端机的程序的状况

u

以用户为主的格式来显示程序状况

x

显示所有程序,不以终端机来区分

  为了使大家对该命令的使用有更深刻的认识,这里给大家举几个例子进行说明。

  1.示例一

  ps命令可以监控后台进程的工作情况,因为后台进程是不和屏幕、键盘这些标准输入/输出设备进行通信的,如果需要检测其情况,可以使用ps?-el命令,输出内容如图8-20所示。

图8-20 “ps–el”命令显示的进程信息

  关于输出信息项的含义,如表8-3所示。

表8-3 ps -el命令输出项标头含义说明

输  出  项

说    明

F

用数值表示目前进程的状态

S

用字符表示目前进程的状态

UID

进程使用者的ID

PID

PID表示进程标示符

C

进程使用CPU的估算

PRI

进程执行的优先级

NI

Nice的值,Nice可以降低进程执行的优先权

SZ

Virtual Size,进程在虚拟内存中的大小

WCHAN

等待频道,当为Null时,表示进程正在执行,当进程在就绪时为Waiting for

TTY

表示该进程建立时所对应的终端,“?”表示该进程不占用终端

TIME

进程已经执行的时间

CMD

进程被执行的命令名称

  2.示例二

  通常,在查看进程的时候,最常用的命令是“ps aux”,有时为了查找特定的进程,也会加入grep参数,如“ps aux |grep init”输出信息如图8-21和图8-22所示。

图8-21 “ps aux”命令显示的进程信息

图8-22 “ps aux|grep init”命令显示的进程信息

  关于输出信息项的含义,如表8-4所示。

表8-4 “ps aux | grep init”命令输出项标头含义说明

输  出  项

说    明

USER

用户名

PID

PID表示进程标示符

输  出  项

说    明

%CPU

当前使用的CPU百分比

%MEM

RSS与系统中全部可用页面的比率,因为RSS是包含共享内存在内的近似值,这个百分比也是近似值,所以可能超过内存总量。%MEM列的总和可能会超过100%

VSZ

Virtual Size,进程在虚拟内存中的大小。包括所有映射的文件和设备,单位是千字节

RSS

进程使用物理内存的近似值,单位是千字节

TTY

表示该进程建立时所对应的终端,“?”表示该进程不占用终端

STAT

进程状态。STAT中的字符的含义如下:

“D”:不可中断

“R”:正在运行,或在队列中的进程

“S”:处于休眠状态

“T”:停止或被追踪

“Z”:僵尸进程

“W”:进入内存交换

“X”:死掉的进程

START

进程运行的起始时间

TIME

进程已经执行的时间。单位以CPU运行时间,min和s表示,来源于微态(用户+系统时间)。如果出现较大的值(大于几分钟),那么意味着进程已经运行了一段时间

COMMAND

进程被执行的命令名称。COMMAND项是被删除过的以便于输出与终端窗口符合。用“ps auxw”命令来使得输出显示更宽,最多可显示132个字符

 3.示例三

  此外,还可以通过pstree命令查看Linux进程树。pstree命令以字符形式显示树状结构,清晰地表达了程序间的相互关系。如果不指定程序识别码或用户名称,则会把系统启动时的第一个程序视为基层,并显示之后的所有程序;若指定用户名称,便会以隶属该用户的第一个程序当做基层,然后显示该用户的所有程序。

  下面,针对pstree选项进行说明,如表8-5所示。

表8-5 “pstree”命令主要参数项说明

选 项 名 称

说    明

-a

显示每个程序的完整指令,包含路径参数或是常驻服务的标示

-G

使用VT100终端机的列绘图字符

c

不使用精简标示法

-h

列出树状图时,特别标明现在执行的程序

-H<程序识别码>

此参数的效果和指定

选 项 名 称

说    明

-l

采用长列格式显示树状图

-n

用程序识别码排序。预设是以程序名称来排序

-p

显示程序识别码

-u

显示用户名称

–U

使用UTF

-V

显示版本信息

  如果要以长列格式显示树状图,并且显示每个进程的完整指令,则可以在命令行输入“pstree –a –l”,回车执行,输出内容如图8-23所示。

图8-23 “pstree –a –l”命令显示的进程信息

  8.2.6  Linux操作系统进程终止技术

  Linux操作系统也有结束进程的对应方法,在RedHat 9系统中,终止一个进程或正在运行的程序,一般是通过kill、killall、pkill等命令进行操作。

  下面结合实例给大家具体介绍一下,这些命令是如何应用于具体的工作当中。首先,看一下kill命令,这里给大家介绍一个通用的查看命令帮助的方法,通常可以用“man命令”的方式来查看该命令的帮助信息,如查看kill命令帮助,则可以在终端命令窗口输入“man kill”,回车执行,显示如图8-24所示信息,可以输入“q”退出帮助信息查看。

图8-24 “kill”命令帮助

3.示例三

  此外,还可以通过pstree命令查看Linux进程树。pstree命令以字符形式显示树状结构,清晰地表达了程序间的相互关系。如果不指定程序识别码或用户名称,则会把系统启动时的第一个程序视为基层,并显示之后的所有程序;若指定用户名称,便会以隶属该用户的第一个程序当做基层,然后显示该用户的所有程序。

  下面,针对pstree选项进行说明,如表8-5所示。

表8-5 “pstree”命令主要参数项说明

选 项 名 称

说    明

-a

显示每个程序的完整指令,包含路径参数或是常驻服务的标示

-G

使用VT100终端机的列绘图字符

c

不使用精简标示法

-h

列出树状图时,特别标明现在执行的程序

-H<程序识别码>

此参数的效果和指定

选 项 名 称

说    明

-l

采用长列格式显示树状图

-n

用程序识别码排序。预设是以程序名称来排序

-p

显示程序识别码

-u

显示用户名称

–U

使用UTF

-V

显示版本信息

  如果要以长列格式显示树状图,并且显示每个进程的完整指令,则可以在命令行输入“pstree –a –l”,回车执行,输出内容如图8-23所示。

图8-23 “pstree –a –l”命令显示的进程信息

  8.2.6  Linux操作系统进程终止技术

  Linux操作系统也有结束进程的对应方法,在RedHat 9系统中,终止一个进程或正在运行的程序,一般是通过kill、killall、pkill等命令进行操作。

  下面结合实例给大家具体介绍一下,这些命令是如何应用于具体的工作当中。首先,看一下kill命令,这里给大家介绍一个通用的查看命令帮助的方法,通常可以用“man命令”的方式来查看该命令的帮助信息,如查看kill命令帮助,则可以在终端命令窗口输入“man kill”,回车执行,显示如图8-24所示信息,可以输入“q”退出帮助信息查看。

图8-24 “kill”命令帮助信息

 1.示例一

  运行“ps aux | grep gnome”命令查看当前系统运行的进程名包含“gnome”的进程,可以看到,pid为“2151”的则是系统自带的“字典”应用程序,如图8-25所示,如果要将这个程序关闭,可以输入命令“kill 2151”,则关闭了“字典”程序(从界面上消失),再输入“ps aux | grep gnome”命令,查看“字典”程序已经不存在,如图8-26所示。

图8-25 “ps aux | grep gnome”输出信息

图8-26 “kill 2151”、“ps aux | grep gnome”命令输出信息

  2.示例二

  一个程序已经彻底关闭,如果kill不加信号强度(signal)没有办法退出,这时,最好的办法就是加信号强度9,后面指出要杀死的“僵尸”进程PID,例如,需要关闭“Emacs”,通过“ps aux”命令,可以查看到“Emacs”的PID为“1938”,先需要强制关闭该程序,可以输入“kill -9 1938”,如图8-27所示,命令执行完成以后,“Emacs”程序就会被关闭。

图8-27 “kill -9 1938”强制终止进程命令


 3.示例三

  当然,还可以通过应用killall命令来终止某一个程序或者进程,如要结束“文本编辑器”程序,可以输入“killall gedit”,回车执行,如图8-28所示,killall是通过命令空格正在运行的程序名来结束某个程序的,如果想获得更多的关于该命令的应用信息,请使用前面介绍的“man”命令。

图8-28 “killall gedit”终止文本编辑器命令

  4.示例四

  pkill和killall命令应用方法差不多,也是直接关闭运行中的程序。如果想关闭单个进程,请用kill命令,如要结束“文本编辑器”程序,可以输入“pkill gedit”,回车执行,如图8-29所示。pkill命令是通过命令空格正在运行的程序名来结束某个程序的,如果想获得更多的关于该命令的应用信息,请使用前面介绍的“man”命令。

图8-29 “pkill gedit”终止文本编辑器命令

  (未完待续)

版权声明:51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像。51testing软件测试网欢迎与业内同行进行有益的合作和交流,如果有任何有关内容方面的合作事宜,请联系我们。

相关链接:

精通软件性能测试与LoadRunner最佳实战 连载一

精通软件性能测试与LoadRunner最佳实战 连载二

精通软件性能测试与LoadRunner最佳实战 连载三

精通软件性能测试与LoadRunner最佳实战 连载四

精通软件性能测试与LoadRunner最佳实战 连载五


posted on 2013-07-03 11:20 顺其自然EVO 阅读(242) 评论(0)  编辑  收藏 所属分类: loadrunner性能测试


只有注册用户登录后才能发表评论。


网站导航:
 
<2013年7月>
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

导航

统计

常用链接

留言簿(55)

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜