9個Linux系統常用監控命令
我們的系統一旦上線跑起來我們自然希望它一直相安無事,不要宕機,不要無響應,不要慢騰騰的。但是這不是開啟機器電源然後放任不管就可以得到的。所以我們要監視系統的執行狀況,發現問題及時處理。
對於系統和網路管理員來說每天監控和除錯Linux系統的效能問題是一項繁重的工作。監控和保持系統啟動並執行是很不容易的一件事。因此實驗樓介紹部分linux的系統監控命令。
(1)Linux程序監控:TOP
Linux下的Top命令是一個性能監控程式,許多系統管理員常常用它來監控Linux效能,在許多Linux或者類Unix作業系統裡都有這個命令。
Top命令用於按一定的順序顯示所有正在執行而且處於活動狀態的實時程序,而且會定期更新顯示結果。這條命令顯示了CPU的使用率、記憶體使用率、交換記憶體使用大小、快取記憶體使用大小、緩衝區使用大小,程序PID、所使用命令以及其他。它還可以顯示正在執行程序的記憶體和CPU佔用多的情況。
$ top
操作截圖:
在圖中依次可以看到程序PID,程序使用者,CPU使用率,記憶體使用率、交換記憶體使用大小等等資訊。top命令提供了實時的對系統處理器的狀態監視.它將顯示系統中CPU最“敏感”的任務列表.
通過man top可以檢視到詳細的top命令使用方式。
$ man top
操作截圖:
(2)虛擬記憶體統計 : vmstat
Linux 的 VmStat 命令用於顯示虛擬記憶體、核心執行緒、磁碟、系統程序、I/O 塊、中斷、CPU 活動 等的統計資訊。
一般vmstat工具的使用是通過兩個數字引數來完成的,第一個引數是取樣的時間間隔數,單位是秒,第二個引數是取樣的次數,
$ vmstat 2 1
$ vmstat 2 2
操作截圖:
如果要求vmstat每2秒採集資料,一直採集,直到結束程式(Ctrl+c)。則省略採集次數:
$ vmstat 2
測試引數講解:
r :表示執行佇列,如果執行佇列過大,表示你的CPU很繁忙,一般會造成CPU使用率很高 b :表示阻塞的程序數swpd :虛擬記憶體已使用的大小,如果大於0,表示你的機器實體記憶體不足了,如果不是程式記憶體洩露的原因,那麼你該升級記憶體了或者把耗記憶體的任務遷移到其他機器 free :空閒的實體記憶體的大小 buff : 系統佔用的快取大小 cache :直接用來記憶我們開啟的檔案,給檔案做緩衝 si :每秒從磁碟讀入虛擬記憶體的大小,如果這個值大於0,表示實體記憶體不夠用或者記憶體洩露了 us :使用者CPU時間 sy :系統CPU時間 so : 每秒虛擬記憶體寫入磁碟的大小,如果這個值大於0,同上。 sy : 系統CPU時間,如果太高,表示系統呼叫時間長,例如是IO操作頻繁。 id : 空閒 CPU時間,一般來說,id + us + sy = 100 wt : 等待IO CPU時間。
(3)列出開啟的檔案:lsof
它常用於以列表的形式顯示所有開啟的檔案和程序。開啟的檔案包括磁碟檔案、網路套接字、管道、裝置和程序。
使用這條命令的主要情形之一就是在無法掛載磁碟和顯示正在使用或者開啟某個檔案的錯誤資訊的時候。使用這條命令,你可以很容易地看到正在使用哪個檔案。
$ lsof
操作截圖:
此命令執行的結果較長,截圖部分。
(4)網路包分析器:tcpdump
Tcpdump是最廣泛使用的網路包分析器或者包監控程式之一,它用於捕捉或者過濾網路上指定介面上接收或者傳輸的TCP/IP包。
它還有一個選項用於把捕捉到的包儲存到檔案裡,以便以後進行分析。
- -h:檢視命令幫助
- -i:網路介面
- -c :需要輸出包數量
$ sudo apt-get update
$ sudo apt-get install tcpdump
$ tcpdump -h
$ sudo tcpdump -i eth0 -c 3
操作截圖:
(5)網路狀態統計:netstat
Netstat是一個用於監控進出網路的包和網路介面統計的命令列工具。它是一個非常有用的手機號買賣地圖工具,系統管理員可以用來監控網路效能,定位並解決網路相關問題。
- -h: 檢視幫助
- -r:
- -i:檢視網路介面
$ netstat -h
$ netstat -r
$ netstat -i
操作截圖:
(6)程序監控:Htop
Htop 是一個非常高階的互動式的實時linux程序監控工具。 它和top命令十分相似,但是它具有更豐富的特性,例如使用者可以友好地管理程序,快捷鍵,垂直和水平方式顯示程序等等。
Htop是一個第三方工具,它不包含在linux系統中,你需要使用管理工具去安裝它。
$ sudo apt-get install htop
$ htop
(7)監控Linux磁碟I/O :iotop
iotop命令同樣也非常類似於top命令和Htop程式,不過它具有監控並顯示實時磁碟I/O和程序的統計功能。在查詢具體程序和大量使用磁碟讀寫程序的時候,這個工具就非常有用。
這個命令只有在kernelv2.6.20及以後的版本中才有。python版本需要 python2.7及以上版本。由於系統原因,實驗環境並不支援此命令。此處僅做介紹。
(8)輸入/輸出統計:iostat
iostat是一個用於收集顯示系統儲存裝置輸入和輸出狀態統計的簡單工具。這個工具常常用來追蹤儲存裝置的效能問題,其中儲存裝置包括裝置、本地磁碟,以及諸如使用NFS等的遠端磁碟。
$ sudo apt-get install sysstat
$ iostat
操作截圖:
各項含義: avg-cpu段:
%user: 在使用者級別執行所使用的CPU的百分比.
%nice:優先程序消耗的CPU時間,佔所有CPU的百分比.
%system: 在系統級別(kernel)執行所使用CPU的百分比.
%iowait: CPU等待硬體I/O時,所佔用CPU百分比.
%steal: 管理程式維護另一個虛擬處理器時,虛擬CPU的無意識等待時間百分比.
%idle: CPU空閒時間的百分比.
Device段:
tps: 每秒鐘傳送到的I/O請求數.
KB_read /s: 每秒讀取的block數.
KB_wrtn/s: 每秒寫入的block數.
KB_read: 啟動到現在 讀入的block總數.
KB_wrtn: 啟動到現在寫入的block總數.
檢視幫助:
$ man iostat
(9)實時區域網IP監控:IPTraf
IPTraf是一個在Linux控制檯執行的、開放原始碼的實時網路(區域網)監控應用。它採集了大量資訊,比如通過網路的IP流量監控,包括TCP標記、ICMP詳細資訊、TCP/UDP流量分離、TCP連線包和位元組數。同時還採集有關介面狀態的常見資訊和詳細資訊:TCP、UDP、IP、ICMP、非IP,IP校驗和錯誤,介面活動等。
$ sudo apt-get install iptraf
$ sudo iptraf
操作截圖(注意圖片中下面的提示操作資訊。):
檢視命令幫助資訊,根據需要選擇合適的引數,進行監控。此處便不再贅述命令引數:
$ sudo iptraf -h
最後
以上內容全部摘選自實驗樓課程——Linux系統監控實戰,想要檢視更多Linux系統常用監控命令以及監控工具的使用和介紹,點選Linux系統監控實戰,就可以檢視;
- 如果你想學習更多Linux知識,點選這裡即可檢視Linux相關教程;
- 你也可以點選【技術學習路徑】,跟著路徑零基礎入門程式設計;