性能監控對測試工程師來講至關重要,因為有很多軟件的平台是基於unix的,其中solaris為主,通常我們需要監控機器的CPU,內存,磁盤,以及網絡流量等。主要包括:
處理器
內存
網絡
磁盤,卷和文件系統
系統和用戶進程
輸入輸出(I/O,input/output)
如果需要更深入的了解瓶頸所在,可使用dtrace工具。OpenSolaris DTrace Community提供了一些專注於此方面的dtrace腳本,可在執行性能調優時使用。
處理器監控
1、solaris
查看處理器狀態,psrinfo顯示處理器每個核(core)的狀態信息
-bash-3.00$ /usr/sbin/psrinfo
0 on-line since 10/13/2007 02:30:32
1 on-line since 10/13/2007 02:30:33
2 on-line since 10/13/2007 02:30:33
....
查看處理器的詳細信息
-bash-3.00$ /usr/sbin/psrinfo -v
Status of virtual processor 0 as of: 12/27/2007 09:39:37
on-line since 10/13/2007 02:30:32.
The sparcv9 processor operates at 1000 MHz,
and has a sparcv9 floating point processor.
Status of virtual processor 1 as of: 12/27/2007 09:39:37
on-line since 10/13/2007 02:30:33.
The sparcv9 processor operates at 1000 MHz,
and has a sparcv9 floating point processor.
....
來個中文的:
bash-3.00$ /usr/sbin/psrinfo -v
虛擬處理器 0 在下列時間的狀態:12/27/2007 13:14:53
自 12/27/2007 12:59:29 開始已在運行。
i386 處理器以 1333 MHz 運行,
而且有 i387 compatible 浮點數處理器
查看每個處理器(同樣以核為單位)的統計信息,用mpstat命令
bash-3.00$ mpstat 2 5
CPU minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl
0 1058 21 0 309 224 1029 65 0 5 0 2825 16 35 0 49
0 8 0 0 345 245 217 2 0 1 0 62 0 2 0 98
0 10 0 0 343 244 209 1 0 1 0 64 0 2 0 98
0 0 0 0 478 378 498 68 0 67 0 54 0 11 0 89
0 0 0 0 346 245 208 1 0 1 0 60 0 1 0 99
輸出中,一般看最後四個字段:usr,sys,wt,idl。idl不低於30基本沒事,sys如果常高於15需引起注意,wt是歷史遺留字段對於solaris10而言總是0。其他幾個常見字段:
xcal 多個處理器間交叉調用的次數
csw 處理器執行上下文交換的次數
syscl 本處理器執行系統調用的次數
注意:mpstat之類的按時間與次數的采樣工具的輸出第一行是自系統啟動以來的匯總平均值統計
此外,kstat命令也可以用來收集處理器的信息:
bash-3.00$ kstat -m cpu
module: cpu instance: 0
name: intrstat class: misc
crtime 29.699815013
level-1-count 65517
level-1-time 991179530
level-10-count 163269
level-10-time 97182752330
level-11-count 0
level-11-time 0
level-12-count 2
level-12-time 238486
......