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