Windows XP Windows 7 Windows 2003 Windows Vista Windows教程綜合 Linux 系統教程
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟件教程
 Windows教程網 >> Linux系統教程 >> Linux系統常見問題解答 >> 你應該知道的16個Linux服務器監控命令

你應該知道的16個Linux服務器監控命令

日期:2017/1/20 17:38:41      編輯:Linux系統常見問題解答

在不同的Linux發行版中,會有不同的GUI程序可以顯示各種系統信息,比如SUSE Linux發行版中,就有非常棒的圖形化的配置和管理工具YaST,KDE桌面環境裡的KDE System Guard也很不錯。

然而,對於一名Linux系統管理員來說,除非迫不得已,否則不會在Linux服務器上去運行這樣的GUI程序,主要還是因為GUI會占用很多的系統資源。所以呢,使用GUI工具一般都是做簡單的排查,如果你真的想知道系統裡真正發生了什麼,那麼請關掉你的GUI,快點進入Linux命令行的世界吧。

如果希望追求最佳性能,那麼Linux服務器應該運行在runlevel 3級別,也就是支持網絡和多用戶功能,但不支持GUI功能。如果你真的需要GUI,那麼可以在命令行輸入startx進入GUI。

如果你的Linux系統默認就是進入GUI,你可以調一調配置,讓他默認進入runlevel 3。具體方法就是:

  • 1 打開一個終端,su到root賬號
  • 2 用你喜歡的編輯器(vi/emacs/...)打開/etc/inittab文件
  • 3 查找initdefault關鍵字,將“id:5:initdefault:”修改為“id:3:initdefault:”

如果系統中根本就沒有/etc/inittab文件的話,也沒關系,直接創建這個文件,並添加新的一行“id:3”。這樣的話,你再重啟服務器,便會默認進入命令行狀態。當然,如果你只想在臨時進入命令行狀態,那麼直接在終端中輸入“init 3”就好了。

至此,我們的命令行准備好了,下面就可以開始通過強大的命令來查看“到底服務器裡發生了什麼”:


	
  1. [01 - iostat ]
  2. [02/03 - meminfo/free ]
  3. [04 - mpstat ]
  4. [05 - netstat ]
  5. [06 - nmon ]
  6. [07 - pmap ]
  7. [08/09 - ps/pstree ]
  8. [10 - sar ]
  9. [11 - strace ]
  10. [12 - tcpdump ]
  11. [13 - top ]
  12. [14 - uptime ]
  13. [15 - vmstat ]
  14. [16 - wireshark ]

[01 - iostat]

iostat命令顯示的是你的存儲系統的細節狀態。你通常可以用這個命令去檢測你的存儲設備是否工作正常,

完全可以在用戶抱怨服務器慢之前,通過這個命令發現系統IO方面的問題。

如下可以看到iostat既可以顯示CPU使用情況,也可以看到每個磁盤的IO情況。


	
  1. # iostat 1
  2. Linux 2.6.32-220.4.1.el6.i686 (roclinux) 2012年12月22日 _i686_ (4 CPU)
  3.  
  4. avg-cpu: %user %nice %system %iowait %steal %idle
  5. 0.55 0.00 0.03 0.02 0.00 99.40
  6.  
  7. Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
  8. sdb 0.41 2.61 5.76 2558664 5653872
  9. sda 0.24 0.80 4.12 784650 4038344

[02/03 - meminfo/free]

meminfo提供了很詳細的內存使用狀況。可以直接用cat命令查看:


	
  1. cat /proc/meminfo

當然meminfo裡包含了太多細節,你可以直接使用free命令來查看有關內存的綜述。


	
  1. # free -m
  2. total used free shared buffers cached
  3. Mem: 1513 1429 83 0 343 836
  4. -/+ buffers/cache: 249 1263
  5. Swap: 0 0 0

[04 - mpstat]

mpstat用在多處理器的服務器上,用來顯示每一個CPU的狀態。

另外,mpstat也會顯示所有處理器的平均狀況。

你可以設置顯示每個服務器的CPU統計信息,或者每個處理的CPU統計信息。


	
  1. # mpstat -P ALL

  2. Linux 2.6.32-220.4.1.el6.i686 (roclinux) 2012年12月22日 _i686_ (4 CPU)

  3.  

  4. 17時46分35秒 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle

  5. 17時46分35秒 all 0.55 0.00 0.03 0.02 0.00 0.00 0.00 0.00 99.40

  6. 17時46分35秒 0 0.84 0.00 0.04 0.03 0.00 0.01 0.00 0.00 99.08

  7. 17時46分35秒 1 0.51 0.00 0.03 0.02 0.00 0.00 0.00 0.00 99.44

  8. 17時46分35秒 2 0.45 0.00 0.02 0.01 0.00 0.00 0.00 0.00 99.51

  9. 17時46分35秒 3 0.40 0.00 0.02 0.01 0.00 0.00 0.00 0.00 99.56

  10.  

  11. # mpstat -P 0

  12. Linux 2.6.32-220.4.1.el6.i686 (roclinux) 2012年12月22日 _i686_ (4 CPU)

  13.  

  14. 17時46分39秒 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle

  15. 17時46分39秒 0 0.84 0.00 0.04 0.03 0.00 0.01 0.00 0.00 99.08

其中各個域的含義簡述如下:

  • 1 CPU:處理器編號,如果為all,則此行表示的是所有處理器的統計平均值
  • 2 %usr:用戶態的CPU利用率
  • 3 %nice:具有調度優先級的用戶態CPU利用率
  • 4 %sys:內核態CPU利用率(此值不包括響應硬件中斷和軟件中斷的時間)
  • 5 %iowait:處理IO請求導致CPU處於IDLE狀態的時間百分比
  • 6 %irq:CPU響應硬件中斷的時間比率
  • 7 %soft:CPU響應軟件中斷的時間比率
  • 8 %steal:當虛擬機監控器在服務於其他虛擬處理器時,虛擬CPU的被動等待時間比率
  • 9 %guest:運行一個虛擬處理器所消耗的CPU時間比率

[05 - netstat]

netstat命令,是Linux系統管理員幾乎每天都會用到的命令(它已經逐步在被ss命令取代),他可以顯示很多有關網絡方面的信息,例如socket使用情況、路由情況、網卡情況、協議情況、網絡流量統計等等。

一些常用的netstat選項包括:

  • -a : 顯示所有socke信息
  • -r : 顯示路由信息
  • -i : 顯示網卡借口統計
  • -s : 顯示網絡協議統計

[06 - nmon]

nmon是Nigel’s Monitor的縮寫,它是一個很知名的監視Linux系統性能的工具。

nmon可以查看到處理器利用率、內存使用率、運行隊列信息、磁盤IO統計、網絡IO統計、換頁統計等。

你可以通過一個基於curses的類GUI界面來查看到上述信息。

Copyright © Windows教程網 All Rights Reserved