Linux系統管理員需要知道的16個伺服器監控命令

2021-07-04 13:34:13 字數 3226 閱讀 2071

目錄(?)

[-]

iostat

meminfo 和 free

mpstat

netstat

nmon

pmap

ps 和 pstree

sarstrace

tcpdump

topuptime

vmstat

wireshark

如果你想知道你的伺服器正在做幹什麼,你就需要了解一些基本的命令,一旦你精通了這些命令,那你就是乙個 專業的 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 資訊:

1cat/proc/meminfo

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

mpstat

mpstat mpstat是multiprocessor statistics的縮寫,是實時系統監控工具。其報告與cpu的一些統計資訊,這些資訊存放在/proc/stat檔案中。在多cpus系統裡,其不但能檢視所有cpu的平均狀況資訊,而且能夠檢視特定cpu的資訊。

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

netstat

netstat 和 ps 命令類似,是 linux 管理員基本上每天都會用的工具,它顯示了大量跟網路相關的資訊,例如 socket 的使用、路由、介面、協議、網路等等,下面是一些常用的引數:

1-a show all socket information

2-r show routing information

3-i show network inte***ce statistics

4-s show network protocol statistics

nmon

nmon, 是 nigel's monitor 的縮寫,是乙個使用很普遍的開源工具,用以監控 linux 系統的效能。nmon 監控多個子系統的效能資料,例如處理器的使用率、記憶體使用率、佇列、磁碟i/o統計、網路i/o統計、記憶體頁處理和程序資訊。nmon 也提供了乙個圖形化的工具:

要執行 nmon,你可以在命令列中啟動它,然後選擇要監控的子系統,這些子系統都對應有乙個快捷鍵,例如輸入 c 可檢視 cpu 資訊,m用於檢視記憶體,d用來檢視磁碟資訊等,你也可以使用 -f 命令將 nmon 的執行結果儲存到乙個 csv 檔案中,便於日後分析。

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

pmap

pmap 命令用來報告每個程序占用記憶體的詳細情況,可用來看是否有程序超支了,該命令需要程序 id 作為引數。

ps 和 pstree

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

sarsar 程式是系統監控工具裡的瑞士軍刀。該程式包含三個工具:sar 用來顯示資料,sa1 和 sa2 用來收集資料並儲存。sar 可用來顯示 cpu 使用率、記憶體頁資料、網路 i/o 和傳輸統計、程序建立活動和磁碟裝置的活動詳情。sar 和 nmon 最大的不同就是 sar 跟適合用作長期的監控,而 nmon 可以讓你快速的了解系統當前狀態。

strace

strace 經常被認為是程式設計師除錯的工具,但不止如此。它可以記錄程序進行系統呼叫的詳情,因此它也是乙個非常好的診斷工具,例如你可以使用它來找出某個程式正在開啟某個配置檔案。

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

tcpdump

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

toptop 命令顯示當前的活動程序,預設它是按消耗 cpu 的厲害程度進行排序,每5秒鐘重新整理一次列表,你也可以選擇不同的排序方式,例如 m 是按記憶體占用方式進行排序的快捷鍵。

uptime

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

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

vmstat

在 oschina 上執行 vmstat 的結果:

wireshark

這裡羅列的是大多數最有價值的 linux 監控程式,當然,你可能還會使用其他的工具,不妨跟大家分享下。

Linux系統管理員必備

linux系統管理工具包系列彙總 linux系統管理員必看 vandyke securecrt 6.1.3 附特別檔案 linux administration handbook 第二版 linux伺服器配置全程實錄 時間管理 給系統管理員 中文高畫質pdf time management for ...

linux 系統管理員操作

1.檢查系統版本 cat etc redhat release 2.檢視網絡卡ip位址 ifconfig 或者 ifconfig eth0 或者 ifconfig head 2 檢視前兩行 3.檢視主機名 hostname 一般情況下伺服器在遠端資料中心,我們通過遠端管理.遠端登入 ssh 命令格式...

4 1系統管理員

本章要點 v 系統管理員 v 使用者管理 v 使用者組管理 v 使用使用者管理器管理使用者和組 學習要求 v 了解系統管理員的作用及其許可權 v 掌握使用 useradd 命令新增使用者的方法 v 掌握使用passwd命令為所新增的使用者設定密碼的方法 v 掌握使用groupadd 命令新增使用者組...