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

英文原文: hp.com,翻譯:oschina php

若是你想知道你的服務器正在作幹什麼,你就須要瞭解一些基本的命令,一旦你精通了這些命令,那你就是一個 專業的 Linux 系統管理員。 html

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

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

若是你的服務器啓動後就直接進入圖形界面,你須要修改配置 /etc/inittab 找到 initdefault 同樣,將 id:5:initdefault 修改成 id:3:initdefault。 程序員

若是你沒找到 /etc/inittab 文件,那就建立一個新的,文件內容增長 id:3 這麼一行。這樣下次服務器啓動的時候就不會進入圖形界面。若是你不想等到服務器重啓的時候才生效,你能夠執行 init 3 這個命令。 服務器

一旦你的服務器是在控制檯模式下運行,你就能夠開始咱們接下來的內容。 網絡

iostat session

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

meminfo 和 free tcp

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

1
cat/proc/meminfo

另外你可使用 free 命令來顯示動態的內存使用信息,free 只是給你大概的內存信息,而 meminfo 提供的信息更加詳細。

mpstat

mpstat mpstat是MultiProcessor Statistics的縮寫,是實時系統監控工具。其報告與CPU的一些統計信息,這些信息存放在/proc/stat文件中。在多CPUs系統裏,其不但能查看全部CPU的平均情況信息,並且可以查看特定CPU的信息。

netstat

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

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

nmon

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

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

要運行 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 命令告訴你這臺服務器從開機啓動到如今已經運行了多長時間了。同時也包含了從啓動到如今服務器的平均負載狀況。

vmstat

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

Wireshark

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

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

這裏羅列的是大多數最有價值的 Linux 監控程序,固然,你可能還會使用其餘的工具,不妨跟你們分享下。

相關文章
相關標籤/搜索