ksar 簡介
通常系統管理員使用一組命令完成如下任務:uptime 顯示系統負載情況,mpstat 顯示 CPU 性能,free 顯示內存使用情況,vmstat 顯示虛擬內存使用情況,iostat 顯示系統 I/O 活動,netstat 顯示網絡的活動,df 和 du 顯示磁盤使用情況。還可以使用 sar 工具完成以上任務,sar 是 System Activity Reporter(系統活動情況報告)的縮寫。這個工具對於可以收集系統性能數據,比如 CPU 使用率、硬盤和網絡吞吐數據,通過這些數據的收集和分析,系統管理員可以判斷系統是否正常運行,是提高系統運行效率的得力助手。
安裝配置 ksar
使用 ksar 之前要安裝配置好 sar,這個工具也包含於大部分 Linux 發行版本中,在 Redhat Linux 中是 sysstat 軟件包。另外您還要配置好 Java JDK 。JDK 版本要求不高,版本高於 1.50 即可。配置完成後,可以運行如下命令檢查版本號:
#java -version
如果版本號超過 1.50 ,就可以使用 ksar
# wget http://jaist.dl.sourceforge.net/project/ksar/ksar/5.0.6/ksar-5.0.6.zip
# unzip ksar-5.0.6.zip
# cd ksar-5.0.6/
# sh run.sh
圖 1. 第一次運行 ksar 要設置一下目標主機
使用 ksar 分析磁盤 I/O
目前計算機整體的處理器速度、內存大小以及 I/O 執行速度在不斷提高,但 I/O 操作的吞吐率和延遲性能仍然要比等價的內存訪問操作低多個數量級。另外由於許多工作負荷都擁有重要的 I/O 組件,I/O 處理很容易成為整體吞吐率和應用整體響應時間的重要瓶頸。針對 I/O 操作密集的應用,性能分析人員必須通過工具來獲取關於 I/O 子系統操作的信息。系統管理員如果要了解磁盤 I/O信息,可以打開 data 菜單的 Run local command 欄目,然後輸入命令:sar -b 3 12,這個命令表示每隔 3 秒報告磁盤使用情況,總共運行 12 秒結果如圖 2。圖 2 在數據采集結束後給出了統計平均數據。
圖 2. 使用 ksar 分析磁盤 I/O
參數說明:
Ttansfer/s: 每秒從物理磁盤 I/O 的次數 . 多個邏輯請求會被合並為一個 I/O 磁盤請求,一次傳輸的大小是不確定的 .
Read/s: 每秒的讀請求數
Writer/s: 每秒的寫請求數
Block bread/s: 每秒讀磁盤的數據塊數
Block wrtn/s: 每秒寫磁盤的數據塊數
使用 ksar 分析網絡信息
ksar 命令使用 -n 選項可以匯報網絡相關信息,可用的參數包括:DEV、EDEV、SOCK 和 FULL。系統管理員如果要了解網絡信息,可以打開 data 菜單的 Run local command 欄目然後輸入命令:sar -n DEV 1 2 結果如圖 3 。
圖 3. 使用 ksar 分析網絡信息
參數說明:
rxpck/s:每秒鐘接收到的包數目
txpck/s:每秒鐘發送出去的包數目
rxbyt/s:每秒鐘接收到的字節數
txbyt/s:每秒鐘發送出去的字節數
rxcmp/s:每秒鐘接收到的壓縮包數目
txcmp/s:每秒鐘發送出去的壓縮包數目
txmcst/s:每秒鐘接收到的多播包的包數目
使用 ksar 分析 CPU 信息
系統管理員如果要了解中央處理器的工作信息,可以打開 data 菜單的 Run local command 欄目然後輸入命令:sar -P ALL 結果如圖 4 。
圖 4. 使用 ksar 分析 CPU 信息
參數說明:
%user 在用戶模式中運行進程所花的時間
%nice 運行正常進程所花的時間
%system 在內核模式(系統)中運行進程所花的時間
%iowait 沒有進程在該 CPU 上執行時,處理器等待 I/O 完成的時間
%idle 沒有進程在該 CPU 上執行的時間
使用 ksar 分析內存信息
工作負荷有可能會耗盡所有可用的內存。因此有必要利用一些工具來監視內存的使用情況,例如每個進程或線程的內核內存占用量,以及內核數據結構的內存使用機制及其數量和大小。與 CPU 利用情況一樣,理解操作系統和各個進程的行為對於跟蹤內存短缺所引起的任何性能問題至關重要。系統管理員如果要了解內存信息,可以打開 data 菜單的 Run local command 欄目然後輸入命令:sar -r 1 結果如圖 5 。
圖 5. 使用 ksar 分析內存信息
參數說明:
memfree: 這個值是空閒內存。
memused: 這個值是使用的內存。
%memused: 這個值是使用的內存和內存總量 ( 不包括 swap) 的一個百分比。
使用 ksar 分析 NFS 信息
網絡文件系統 (Network File System,NFS) 可以將遠程機器的文件系統與本地文件系統融合起來,即 NFS 使用與本地相同的讀寫接口來遠程訪問數據。系統管理員如果要了解 NFS 信息,可以打開 data 菜單在 Run local command 欄目然後輸入命令 :sar -n NFS 1 結果如圖 6 。
圖 6. 使用 ksar 分析 NFS 信息
參數說明:
call/s: 每秒成功的 RPC 調用都會使 call/s 的值增長,比如對 NFS 的一次讀 / 寫 。
retrans/s: 每秒重傳的 RPC 次數,比如因為服務器的問題,產生 timeout, 這時客戶端需要重新傳輸 。
read/s: 每秒從 NFS 服務端讀取的次數。
write/s: 每秒寫入到 NFS 服務端的次數。
access/s: 每秒訪問 NFS 的次數,比如從 NFS 服務端 COPY 文件。
getatt/s: 每秒獲取 NFS 服務端文件屬性的次數,比如 ls -l /NFSSERVER/, 如果 NFSSERVER 有 300 個文件,將產生 300 次這樣的請求。
用 ksar 了解系統中斷
系統管理員如果要了解系統中斷的使用情況,可以打開 data 菜單的 Run local command 欄目然後輸入命令 : :sar -I ALL 1 結果如圖 7。
圖 7. 用 ksar 了解系統中斷
參數說明:
intr/s 表示每秒的中斷次數。
使用 ksar 了解系統內存分頁
分頁是操作系統中的內存管理機制。通過這種方式計算機可以為主存存取其他存儲介質上的數據。系統管理員如果要了解系統內存分頁信息,可以打開 data 菜單的 Run local command 欄目,然後輸入命令:sar -B 1 結果如圖 8 。
圖 8. 了解系統內存分頁情況
參數說明:
pgpgin/s: 表示每秒從磁盤或 SWAP 置換到內存的字節數 (KB) 。
pgpgout/s: 表示每秒從內存置換到磁盤或 SWAP 的字節數 (KB) 。
fault/s: 每秒鐘系統產生的缺頁數,即主缺頁與次缺頁之和 (major + minor) 。
majflt/s: 每秒鐘產生的主缺頁數。
使用 ksar 了解系統整體所有信息
ksar 提供了一個選項,即 -A,它代表 all,而且還是大寫的,這個 -A 就相當於所有選項了,打開 data 菜單的 Run local command 輸入命令:sar – A 結果如圖 9。
圖 9. 使用 ksar 了解系統所有信息
從圖 8 可以看到系統使用情況包括:系統進程、上下文、CPU、中斷、I/O 系統、內存使用、連接、系統負載、交換分區、NFS 服務器和客戶端性能包括所有重要信息。另外您可以把 ksar 的結果導出為一個文件(文件類型包括 pdf、PNG、JPG、TXT、CVS)。也可以把一個以前得到的監控的結果導入 ksar 進行圖形化分析。
設置 ksar 的工作時間段
ksar 也可以查看非實時的數據,它是通過 cron 周期的運行 sysstat 腳本,將數據產生到指定的目錄下,例如我們可以通過“Select time range”菜單選擇起始時間段如圖 10。
圖 10. 選擇起始時間段
遠程使用 ksar
ksar 支持 SSH 連接,您可以使用它遠程監控其他 Linux 或其他 Unix 類型的主機。首先要設置本地主機和遠程主機之間可以通過自動 SSH 自動登錄,然後打開 data 菜單的 Lanuch ssh command 輸入命令 :ssh [email protected]如圖 11 。
圖 11.ksar 支持 SSH 連接
總結
本文介紹了 ksar 這個工具,它基於 sar 的圖形化工具。它可以從 10 幾個方面對系統的活動進行報告,包括文件的讀寫情況、系統調用的使用情況、串口、CPU 效率、內存使用狀況、進程活動及 IPC 有關的活動等。這個命令非常復雜,只有通過熟練使用才能掌握。