设进程号为pid,端口号为port。

1.CPU占用率

命令:top -p pid,%CPU一项,单位为百分比。

2.物理内存使用量

命令:top -p pid,RES一项,单位为KB。

3.虚拟内存使用量

命令:top -p pid,VIRT一项,单位为KB。

4.进程队列长度

命令:top,load average一项,三个值分别代表最近1分钟、5分钟、15分钟进程队列的平均长度。

5.打开的socket及其状态

命令:netstat -an | grep port,第四列代表源IP,第五列代表目的IP,第六列代表状态(如LISTEN、ESTABLISHED、TIME_WAIT等)。

替代命令:ss,需要安装几个内核模块,在连接较多时性能比netstat好很多。

安装内核模块命令:

insmod /lib/modules/2.6.18-164.el5/kernel/net/ipv4/inet_diag.ko

insmod /lib/modules/2.6.18-164.el5/kernel/net/ipv4/tcp_diag.ko 

insmod /lib/modules/2.6.18-1.2.0.0-xen/kernel/net/ipv4/inet_diag.ko

insmod /lib/modules/2.6.18-1.2.0.0-xen/kernel/net/ipv4/tcp_diag.ko

6. I/O使用率

命令:iostat -x,%util一项,单位为百分比。

7.磁盘读写速率

命令:iostate -k,kB_read/s表示磁盘每秒读出多少KB数据,kB_wrtn/s表示磁盘每秒写入多少KB数据。

8.最近使用的系统调用及其耗费时间

命令:strace -f -tt -T -p pid,第一项代表系统调用名称,最后一项代表该调用耗费的时间,单位为秒。

9.打开的文件描述符数量

命令:ls /proc/pid/fd | wc -l。

10.进程地址空间

命令:pmap -d pid。

11.环境变量

命令:cat /proc/pid/environ。

12.进程各模块的内存使用情况

命令:cat /proc/pid/smaps。

13.进程状态信息

命令:cat /proc/pid/status,State代表进程状态(运行、睡眠、僵尸等),SleepAVG代表进程睡眠时间的比例,Tgid代表线程组号,PPid代表父进程号,FDSize代表文件描述符的最大个数,VmSize代

表进程虚拟地址空间的大小,VLck代表进程锁住的物理内存的大小,锁住的物理内存无法交换到磁盘,VmRSS代表进程正在使用的物理内存的大小,VmData代表进程数据段的大小,VmStk代表进程在用户态

的栈的大小,VmExe代表进程拥有的可执行虚拟内存的大小,代码段,不包括使用的库,VmLib代表映射到进程地址空间的库的大小,以上单位均为KB,SigQ代表待处理信号的数量,SigBlk代表被阻塞的信

号,SigIgn代表被忽略的信号,SigCgt代表被捕获的信号。

14.进程的线程数量

命令:ls /proc/pid/task | wc -l。

15.启动该进程的命令行

命令:cat /proc/pid/cmdline。

16.列出当前系统打开了哪些文件以及分别由哪个进程打开

命令:sudo lsof -n

17.使程序主动生成core dump文件

命令:gdb -p pid -batch -ex "generate-core-file"