Solaris资源监控命令
命令作用
iostat: 磁盘IO监控
vmstat: 虚拟内存监控
prstat: 进程监控
mpstat: CPU监控
netstat: 网络状态监控
sar: 全面监控
一、进程监控 prstat
-bash-3.00#prstat
PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP
2450 root 8044M 5714M cpu2 10 0 204:37:21 51% java/612
17405 root 136M 39Msleep 59 0 7:23:45 0.1% java/25
15223 root 6360K 4824K cpu18 59 0 0:00:00 0.1% prstat/1
……..
Total:44 processes, 861 lwps, load averages: 2.09, 2.08, 2.07
? Size: 进程映像的大小(进程的总虚拟内存大小),包括所有映射的文件和设备(进程的文本区(程序空间)、数据区、动态分配区的总和)
? RSS:进程常驻大小。表示映射到进程的物理内存总量,包括共享给其他进程的物理内存。
? TIME:进程累计执行时间。
? CPU:当前进程CPU使用时间的百分比;
? PROCESS/NLWP:进程名(执行文件名)以及进程的线程数。
? PID:进程ID号;
? USERNAME:实际的用户名(登陆名)或者用户ID。
? PRI:进程优先级,数字越大则优先级越高。
? NICE:用于优先级计算的精确数字。
在实际的性能问题分析过程中,需要关注的参数主要是Size,RSS,TIME,CPU,NLWP。在一些极端的情况下,TIME和CPU两项内容能表示系统出现了异常,比如TIME显示的数值非常大,明显不合常理,或
者某个应用此时CPU使用率远比正常情况要大的多。
其次,在最后一行,prstat还给出了当前系统的进程数和线程数,以及系统在当前时刻,5分钟内,15分钟内的系统平均负载情况:
Total: 44 processes, 861 lwps,load averages: 2.09, 2.08, 2.07
这些数据都有助于我们了解系统的整体情况,后面会对平均负载的含义做详细说明。
在使用prstat获得一个对所有进程运行的整体印象后,可以进一步通过一些参数来观测某个具体应用进程的详细情况。
root@t139 #prstat -mLp 3411
PID USERNAME USR SYS TRP TFL DFL LCK SLP LATVCX ICX SCL SIG PROCESS/LWPID
3411 root 21 0.0 0.0 0.0 0.0 79 0.0 0.0 4 18 7 0java/10
3411 root 2.1 0.2 0.0 0.0 0.0 92 5.7 0.0285 7 939 0 java/3560
3411 root 0.5 0.0 0.0 0.0 0.0 99 0.50.0 37 0 143 0 java/4308
3411 root 0.0 0.0 0.0 0.0 0.0 14 86 0.0 2 0 8 0 java/120
……
Total: 1processes, 176 lwps, load averages: 0.05, 0.10, 0.16
-L:显示进程的线程信息;
-m:显示进程的微态;微态以时间基准来表示,并且以百分比形式分散到每个线程。
-p:指定观测的进程;
? LCK:进程花费在等待用户锁上的时间百分比;
? SLP:进程花费在休眠上的时间百分比;
? DFL: 显示花费在等待被服务的数据错误的时间百分比。如果该值较高,显示内存不足。
? LAT:进程花费在等待CPU上的时间。
? VCX The number of voluntary contextswitches.
? ICX The number of involuntary contextswitches.
? SCL The number of system calls.
? SIG The number of signals received.
可以使用USR和SYS的状态来查看一个进程消耗的CPU百分比,LAT列显示等待CPU时间的百分比。查看TFL和DFL决定一个进程是否或者怎样去等待内存页面调度,DFL栏显示花费在等待被服务的数据错误的
时间百分比。如果该值过大,显示系统运行内存不足(后面还会介绍多种方法,用于分析系统内存不足)。有关重要事件的提示,比如磁盘或者网络等待,连同其他内核事件都绑定到SLP状态。因为SLP
列包含磁盘读写,其他类型的调度也会影响到SLP状态显示花费的时间。比如,内核锁或者条件变量同样也会累积实际,并显示在此状态中。
二 、 CPU和内存监控:vmstat
-bash-3.00$ vmstat 3
kthr memory page disk faults cpu
r bw swap free re mf pi po fr de sr s1 sd sd -- in sy cs ussy id
0 00 2001848 541208 23 233 71 19 37 2600 220 0 25 0 1185 25241464 2 1 97
0 00 1667384 140408 1 9 0 0 0 1904 0 0 0 4 0 507 476 908 0 0 99
0 00 1667384 140408 0 0 0 0 0 1232 0 0 0 3 0 484 565 922 0 1 99
0 00 1667376 140400 0 1 0 0 0 752 0 0 0 2 0 4811636 925 1 0 99
0 00 1667376 140384 0 0 0 0 0 272 0 0 0 3 0 521 651 880 0 0 99
0 00 1667376 140384 0 0 0 0 0 0 0 0 0 2 0 499 494 840 0 0 99
0 00 1667376 140344 50 177 8 0 0 0 0 0 0 4 0 1948 2746 2205 2 1 97
第一行是自启动以来的摘要信息,紧接着是每隔3秒钟一个示例。
参数说明:
Kthr:处于各种状态中的内核线程数量,包括:
? r:在运行队列中的内核线程数;