一段時間以來,咱們在網上向讀者介紹瞭如何爲Linux以及類Linux操做系統配置多種不一樣的性能監控工具。在這篇文章中咱們將羅列一系列使用最頻繁的性能監控工具,並對介紹到的每個工具提供了相應的簡介連接,大體將其劃分爲兩類,基於命令行的和提供圖形化接口的。html
該命令整合了vmstat,iostat和ifstat三種命令。同時增長了新的特性和功能可讓你能及時看到各類的資源使用狀況,從而可以使你對比和整合不一樣的資源使用狀況。經過不一樣顏色和區塊佈局的界面幫助你可以更加清晰容易的獲取信息。它也支持將信息數據導出到cvs格式文件中,從而用其餘應用程序打開,或者導入到數據庫中。你能夠用該命令來監控cpu,內存和網絡狀態隨着時間的變化。python
這個使用ASCII碼顯示方式的命令行工具是一個顯示全部進程活動的性能監控工具。它能夠展現每日的系統日誌以進行長期的進程活動分析,並高亮顯示過載的系統使用資源。它包含了CPU,內存,交換空間,磁盤和網絡層的度量指標。全部這些功能只需在終端運行atop便可。linux
# atop
固然你也能夠使用交互界面來顯示數據並進行排序。ios
Nmon是Nigel's Monitor縮寫,它最先開發用來做爲AIX的系統監控工具。若是使用在線模式,能夠使用光標鍵在屏幕上操做實時顯示在終端上的監控信息。使用捕捉模式可以將數據保存爲CSV格式,方便進一步的處理和圖形化展現。數據庫
更多的信息參考使用nmon進行性能監控的文章。vim
這個應用可以顯示緩存分配器是如何管理Linux內核中緩存的不一樣類型的對象。這個命令相似於top命令,區別是它的重點是實時顯示內核slab緩存信息。它可以顯示按照不一樣排序條件來排序顯示緩存列表。它同時也可以顯示一個slab層信息的統計信息的題頭。舉例以下:緩存
# slabtop --sort=a # slabtop -s b # slabtop -s c # slabtop -s l # slabtop -s v # slabtop -s n # slabtop -s o
更多的信息參考監控內核slab緩存的文章。網絡
sar 命令能夠將操做系統上所選的累積活動計數器內容信息輸出到標準輸出上。其基於計數值和時間間隔參數的審計系統,會按照指定的時間間隔輸出指定次數的監控信息。若是時間間隔參數爲設置爲0,那麼sar命令將會顯示系統從開機到當時時刻的平均統計信息。有用的命令以下:ide
# sar -u 2 3 # sar -u -f /var/log/sa/sa05 # sar -P ALL 1 1 # sar -r 1 3 # sar -W 1 3
Saidar是一個簡單且輕量的系統信息監控工具。雖然它沒法提供大多性能報表,可是它可以經過一個簡單明瞭的方式顯示最有用的系統運行情況數據。你能夠很容易地看到運行時間、平均負載、CPU、內存、進程、磁盤和網絡接口統計信息。工具
Usage: saidar [-d delay] [-c] [-v] [-h] -d 設置更新時間(秒) -c 彩色顯示 -v 顯示版本號 -h 顯示本幫助
做爲一個廣爲人知的Linux工具,top是大多數的類Unix操做系統任務管理器。它能夠顯示當前正在運行的進程的列表,用戶能夠按照不一樣的條件對該列表進行排序。它主要顯示了系統進程對CPU和內存的使用情況。top能夠快速檢查是哪一個或哪幾個進程掛起了你的系統。你能夠在這裏看到top使用的例子。 你能夠在終端輸入top來運行它並進入到交互模式:
交互模式的一些快捷操做: 全局命令: <回車/空格> ?, =, A, B, d, G, h, I, k, q, r, s, W, Z 統計區的命令: l, m, t, 1 任務區的命令: 外觀: b, x, y, z 內容: c, f, H, o, S, u 大小: #, i, n 排序: <, >, F, O, R 色彩方案: <Ret>, a, B, b, H, M, q, S, T, w, z, 0 - 7 窗口命令: -, _, =, +, A, a, G, g, w
Sysdig是一個可以讓系統管理員和開發人員之前所未有方式洞察其系統行爲的監控工具。其開發團隊但願改善系統級的監控方式,經過提供關於存儲,進程,網絡和內存子系統的統一有序以及粒度可見的方式來進行錯誤排查,並能夠建立系統活動記錄文件以便你能夠在任什麼時候間輕鬆分析。
簡單例子:
# sysdig proc.name=vim # sysdig -p"%proc.name %fd.name" "evt.type=accept and proc.name!=httpd" # sysdig evt.type=chdir and user.name=root # sysdig -l # sysdig -L # sysdig -c topprocs_net # sysdig -c fdcount_by fd.sport "evt.type=accept" # sysdig -p"%proc.name %fd.name" "evt.type=accept and proc.name!=httpd" # sysdig -c topprocs_file # sysdig -c fdcount_by proc.name "fd.type=file" # sysdig -p "%12user.name %6proc.pid %12proc.name %3fd.num %fd.typechar %fd.name" evt.type=open # sysdig -c topprocs_cpu # sysdig -c topprocs_cpu evt.cpu=0 # sysdig -p"%evt.arg.path" "evt.type=chdir and user.name=root" # sysdig evt.type=open and fd.name contains /etc