设进程号为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"