现在的位置: 首页 > Linux > CentOS > Linux > 软件测试 > 测试技术 > 软件测试 > 正文

Linux ps命令监控系统进程方法

2012年08月23日 CentOS, Linux, 测试技术, 软件测试 ⁄ 共 1567字 ⁄ 字号 暂无评论 ⁄ 阅读 3,441 次

本文主要介绍Linux中使用ps命令查看系统进程信息,同时进行实时监控的方法。

1.查看所有进程信息

可以使用命令ps aux查看所以进程信息

显示的信息如下:

USER    PID  %CPU   %MEM   VSZ    RSS  TTY  STAT  START  TIME  COMMAND

root     1    0.0      0.0    10344   672   ?   Ss    Aug20  0:02   init [5]

root     2    0.0      0.0      0      0   ?    S<    Aug20  0:00   [migration/0]

root     3    0.0      0.0      0      0 ?       SN   Aug20  0:00   [ksoftirqd/0]

root     4    0.0      0.0      0      0 ?       S<   Aug20   0:00   [watchdog/0]

参数含义如下:

USER:进程所有者的用户名

PID:进程标识号

%CPU:该进程占用的CPU使用率

%MEM:进程占用物理内存的百分比

VSZ:占用的虚拟内存大小,以KB为单位

RSS:占用的物理内存大小,以KB为单位

TTY :终端的次要装置号码

STAT:行程状态(D:不可中断的静止,R:正在执行中,S:静止,T:暂停执行,Z:不存在但暂时无法清除,W:没有足够的记忆体分页分配,<:高优先级进程,N:低优先级进程,L:有记忆体分页并锁定在记忆体内)

START:进程开始时间

TIME:执行时间

COMMAND:执行命令名称

2.编写监控脚本

如需要监控PID为17136的进程,可以编写shell脚本进行监控。脚本文件名称为test.sh,内容如下:

vi  test.sh

#!/bin/bash

TODAY=`date +"%Y%m%d"`

index=1

count=8460

sleep_time=10

pid=17136

while [ $index -le $count ]

do

  sleep $sleep_time

  ps h -p $pid -o  rss,vsz,%mem,%cpu >>/tmp/ps_${pid}_${TODAY}.txt

  index=$(($index +1))

done

脚本内容含义:

TODAY:当天日期,格式如20120823

index:索引,从1开始

count:索引上限

sleep_time:休眠时间,单位为s

pid:进程ID

ps h -p $pid -o  rss,vsz,%mem,%cpu >>/tmp/ps_${pid}_${TODAY}.txt:监控pid=17136进程,间隔10s记录一次,输出rss、vsz、%mem、%cpu几列信息到目录/tmp下文件(其中文件名称格式为ps_17136_20120813.txt)

3.加到cron里,进行持续监控

crontab –e

0 0 * * * /tmp/songzy/nmon/nmon_x86_64_rhel54 -s10 -c8640 -f -T -m /tmp/songzy/nmon/data/ > /dev/null 2>&1

0 0 * * * /tmp/songzy/vmstat/vmstat_perf.sh

0      0 * * * /tmp/test.sh

4.执行./test.sh,进行监控

./test.sh

*** (此处为光表闪烁,不要进行其他任何操作)

5.查看生成监控日志

通过终端查看监控日志

cat  ps_17136_20120823.txt

文件内容如下,ps_17136_20120823.txt文件中记录的四列分别为rss、vsz、%mem、%cpu值:

3240 333568  0.1  0.0

3252 333568  0.1  0.0

3252 333568  0.1  0.0

3252 333568  0.1  0.0