歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux管理 >> Linux服務

你需要知道的16 個Linux服務器監控命令

如果你想知道你的服務器正在做干什麼,你就需要了解一些基本的命令,一旦你精通了這些命令,那你就是一個專業的Linux系統管理員。

有些 Linux 發行版會提供 GUI 程序來進行系統的監控,例如 SUSE Linux 就有一個非常棒而且專業的工具 YaST,KDE 的 KDE System Guard 同樣很出色。當然,要使用這些工具,你必須在服務器跟前進行操作,而且這些 GUI 的程序占用了很多系統資源,所以說,盡管 GUI 用來做基本的服務器健康狀態監測挺好,但如果你想知道真正發生什麼,請關掉 GUI 開始命令行之旅吧。

你應該只在需要的時候去啟動 GUI ,不用的時候關掉它。如果要讓服務器保持最佳性能,你應該將 Linux 服務器的運行級別 runlevel 設置為 3 ,就是控制台模式,當你需要圖形化桌面的時候使用 startx 命令來啟動它。

如果你的服務器啟動後就直接進入圖形界面,你需要修改配置 /etc/inittab 找到 initdefault 一樣,將 id:5:initdefault 修改為 id:3:initdefault。

如果你沒找到 /etc/inittab 文件,那就創建一個新的,文件內容增加 id:3 這麼一行。這樣下次服務器啟動的時候就不會進入圖形界面。如果你不想等到服務器重啟的時候才生效,你可以執行 init 3 這個命令。

一旦你的服務器是在控制台模式下運行,你就可以開始我們接下來的內容。

iostat

iostat 命令用來顯示存儲子系統的詳細信息,通常用它來監控磁盤 I/O 的情況。要特別注意 iostat 統計結果中的 %iowait 值,太大了表明你的系統存儲子系統性能低下。

meminfo 和 free

Meminfo 可讓你獲取內存的詳細信息,你可以使用 cat 和 grep 命令來顯示 meminfo 信息:

1 cat /proc/meminfo

另外你可以使用 free 命令來顯示動態的內存使用信息,free 只是給你大概的內存信息,而 meminfo 提供的信息更加詳細。例如在 oschina 上的 free 命令執行結果:

mpstat

mpstat mpstat是MultiProcessor Statistics的縮寫,是實時系統監控工具。其報告與CPU的一些統計信息,這些信息存放在/proc/stat文件中。在多CPUs系統裡,其不但能查看所有CPU的平均狀況信息,而且能夠查看特定CPU的信息。

再來看看 oschina 上的 mpstat 命令執行結果:

關於 mpstat 執行結果中的參數意思請參考此貼。

netstat

Netstat 和 ps 命令類似,是 Linux 管理員基本上每天都會用的工具,它顯示了大量跟網絡相關的信息,例如 socket 的使用、路由、接口、協議、網絡等等,下面是一些常用的參數:

1 -a Show all socket information 2 -r Show routing information 3 -i Show network interface statistics 4 -s Show network protocol statistics

nmon

Nmon, 是 Nigel's Monitor 的縮寫,是一個使用很普遍的開源工具,用以監控 Linux 系統的性能。Nmon 監控多個子系統的性能數據,例如處理器的使用率、內存使用率、隊列、磁盤I/O統計、網絡I/O統計、內存頁處理和進程信息。Nmon 也提供了一個圖形化的工具:

sjvn_LinuxServerMonitoring_nmon.png

要運行 nmon,你可以在命令行中啟動它,然後選擇要監控的子系統,這些子系統都對應有一個快捷鍵,例如輸入 c 可查看 CPU 信息,m用於查看內存,d用來查看磁盤信息等,你也可以使用 -f 命令將 nmon 的執行結果保存到一個 CSV 文件中,便於日後分析。

在每日的監控工作中,我發現 nmon 是我最常用的工具。

pmap

pmap 命令用來報告每個進程占用內存的詳細情況,可用來看是否有進程超支了,該命令需要進程 id 作為參數。

ps 和 pstree

ps 和pstree 命令是 Linux 系統管理員最好的朋友,都可以用來列表正在運行的所有進程。ps 告訴你每個進程占用的內存和 CPU 處理時間,而 pstree 顯示的信息沒那麼詳細,但它以樹形結構顯示進程之間的依賴關系,包括子進程信息。一旦發現某個進程有問題,你可以使用kill 來殺掉它。

sar

sar 程序是系統監控工具裡的瑞士軍刀。該程序包含三個工具:sar 用來顯示數據,sa1 和 sa2 用來收集數據並保存。sar 可用來顯示 CPU 使用率、內存頁數據、網絡 I/O 和傳輸統計、進程創建活動和磁盤設備的活動詳情。sar 和 nmon 最大的不同就是 sar 跟適合用作長期的監控,而 nmon 可以讓你快速的了解系統當前狀態。

strace

strace 經常被認為是程序員調試的工具,但不止如此。它可以記錄進程進行系統調用的詳情,因此它也是一個非常好的診斷工具,例如你可以使用它來找出某個程序正在打開某個配置文件。

Strace 也有一個缺陷,但它在跟蹤某個進程時會讓該進程的性能變得非常差,因此請謹慎使用。

tcpdump

Tcpdump 是一個簡單、可靠的網絡監控工具,用來做基本的協議分析,看看那些進程在使用網絡以及如何使用網絡。當然,如果你要獲取跟詳細的信息,你應該使用Wireshark (下面我們會介紹).

top

top 命令顯示當前的活動進程,默認它是按消耗 CPU 的厲害程度進行排序,每5秒鐘刷新一次列表,你也可以選擇不同的排序方式,例如 m 是按內存占用方式進行排序的快捷鍵。

uptime

uptime 命令告訴你這台服務器從開機啟動到現在已經運行了多長時間了。同時也包含了從啟動到現在服務器的平均負載情況,看看 oschina 的數據:

我已經忘了上次是為什麼重啟機器了,好像是換了個機櫃。

vmstat

你可以使用 vmstat 來監控虛擬內存,一般 Linux 上的開發者喜歡使用虛擬內存來獲得最佳的存儲性能。該命令報告關於內核線程、虛擬內存、磁盤、陷阱和 CPU 活動的統計信息。由 vmstat 命令生成的報告可以用於平衡系統負載活動。系統范圍內的這些統計信息(所有的處理器中)都計算出以百分比表示的平均值,或者計算其總和。

在 oschina 上執行 vmstat 的結果:

Wireshark

Wireshark, 前身是 Ethereal ,是一個網絡協議檢測程序,讓您經由程序抓取運行的網站的相關資訊,包括每一封包流向及其內容、資訊可依操作系統語系看出,方便查看、監控TCP session動態等等.

Copyright © Linux教程網 All Rights Reserved