四、中央處理器使用情況監測
1.top
中央處理器是Unix主機的核心硬件。top命令是由 Albert D. Cahalan 維護著的一個開放源代碼工具,包含于大部分 Unix 發行版本中。這里下載的是top-3.6-sol10-x86-local.gz,到/tmp目錄。下載地址: http://sunsite.utk.edu/ftp/usr-436-1/sunfreeware/i386/10/ 解壓:
#cd /tmp
#gzip -d top-3.6-sol10-x86-local.gz
解壓后得到:top-3.6-sol10-x86-local
#pkgadd -d top-3.6-sol10-x86-local
安裝完畢后,會有提示的。重啟計算機。使用: #/usr/local/bin/top,top 顯示的信息同ps接近,但是top可以了解到CPU消耗,可以根據用戶指定的時間來更新顯示。圖3是一個典型top命令的輸出。
![]() |
圖3 top命令監測CPU使用情況 |
top命令輸出的第一行顯示系統更新的時間。第二行顯示的是所有的進程、目前運行的、掛起(Sleeping)的無用(Zombie)的進程和停止(stop)的行程。第三行顯示的是目前CPU的使用情況,包括系統占用的比例、用戶使用比例、閑置(Idle)比例。下面兩第五行和第六行顯示目前的物理內存和虛擬內存使用情況。top命令使用過程中,還可以使用一些交互的命令來完成其它參數的功能。這些命令是通過快捷鍵啟動的。
五、使用iostat監測I/O性能
目前Unix計算機系統的主要性能瓶頸在于I/O 環節。這主要是由于I/O 系統性能的提高遠遠低于CPU 和內存性能的提高。根據摩爾定律,CPU 性能和內存容量每18 個月就可翻一番。但是作為外存的主要設備——硬磁盤,由于機械運動的本質特征導致性能的提高非常有限,每年約7%。這樣可由摩爾定律得出,如今I/O 的性能在系統整體性能中占有舉足輕重的地位。目前優化磁盤性能的各種技術主要側重于如何提高數據傳輸的帶寬,很少有側重于降低延遲的。iostat是I/O statistics(輸入/輸出統計)的縮寫,iostat工具將對系統的磁盤操作活動進行監視。它的特點是匯報磁盤活動統計情況,同時也會匯報出CPU使用情況。同vmstat一樣,iostat也有一個弱點,就是它不能對某個進程進行深入分析,僅對系統的整體情況進行分析。
iostat命令格式:
iostat [ -c | -d ] [ -k ] [ -t ] [ -V ] [ -x [ device ] ] [ interval [ count ] ]
-c : 顯示CPU的使用情況;
-d :顯示磁盤的使用情況;
-k:表示每秒按kilobytes字節顯示數據;
-t:打印匯報的時間;
-v:表示打印出版本信息和用法;
-x device :指定要統計的設備名稱,默認為所有的設備;
interval 指每次統計間隔的時間;count指按照這個時間間隔統計的次數。
用iostat –x 來觀看詳細的磁盤的I/O 詳細情況,如圖4 。
![]() |
圖4 iostat –x 顯示的磁盤的I/O 情況 |
六、使用sar
sar一個開放源代碼工具;它由 Sebastien Godard 維護。這個工具也包含于大部分 unix,sar是System Activity Reporter(系統活動情況報告)的縮寫。顧名思義,sar工具將對系統當前的狀態進行取樣,然后通過計算數據和比例來表達系統的當前運行狀態。它的特點是可以連續對系統取樣,獲得大量的取樣數據;取樣數據和分析的結果都可以存入文件,使用它時消耗的系統資源很小。sar 從/var/log/sa/sadd 讀取記錄文件的資料。/usr/lib/sa/sadc 負責維護系統活動資料和建立這些記錄文件。sar實際包括兩個shell 程序/usr/lib/sa/sa1 和/usr/lib/sa/sa2。/etc/cron.d/systat 是crontab 的系統文件,每十分鐘執行sa1程序一次,然后將它的輸出加到記錄文件后面。Sa1 以二進制格式儲存sar 所讀取的資料。/usr/lib/sa/sa2將每天數據寫入文件/var/log/sa/sadd。dd標示每月的日期。Sar主要用于監視系統活動。sar的語法如下:
sar [-option] [-o file] t [n]
它的含義是每隔t秒取樣一次,共取樣n次。其中-o file表示取樣結果將以二進制形式存入文件file中。Option主要選項:
-A 匯總所有的報告
-a 報告文件讀寫使用情況
-B 報告附加的緩存的使用情況
-b 報告緩存的使用情況
-c 報告系統調用的使用情況
-d 報告磁盤的使用情況
-g 報告串口的使用情況
-h 報告關于buffer使用的統計數據
-m 報告IPC消息隊列和信號量的使用情況
-n 報告命名cache的使用情況
-p 報告調頁活動的使用情況
-q 報告運行隊列和交換隊列的平均長度
-R 報告進程的活動情況
-r 報告沒有使用的內存頁面和硬盤塊
-u 報告CPU的利用率
-v 報告進程、i節點、文件和鎖表狀態
-w 報告系統交換活動狀況
-y 報告TTY設備活動狀況
應用實例:
sar -b 命令顯示緩沖區活動統計信息。
緩沖區用于高速緩存元數據。元數據包括 inode、柱面組塊和間接塊。
![]() |
字段名 |
說明 |
bread/s |
從磁盤提交至高速緩存存儲區的每秒平均讀取數 |
lread/s |
每秒從高速緩存存儲區進行的平均邏輯讀取數 |
%rcache |
在高速緩存存儲區中找到的邏輯讀取的分數 (100 % 減去 bread/s 與 lread/s 之比) |
bwrit/s |
每秒平均從高速緩存存儲區寫入磁盤的物理塊數(512 塊) |
lwrit/s |
每秒平均對高速緩存存儲區進行的邏輯寫入數 |
%wcache |
在高速緩存存儲區中找到的邏輯寫入的分數 (100 % 減去 bwrit/s 與 lwrit/s 之比) |
pread/s |
每秒平均使用字符設備接口的物理讀取數 |
pwrit/s |
每秒平均使用字符設備接口的物理寫入請求數 |