如果你想知道你的伺服器正在做幹什麼,你就需要了解一些基本的命令,一旦你精通了這些命令,那你就是乙個 專業的 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 命令用來顯示儲存子系統的詳細資訊,通常用它來監控磁碟 i/o 的情況。要特別注意 iostat 統計結果中的 %iowait 值,太大了表明你的系統儲存子系統效能低下。
meminfo 可讓你獲取記憶體的詳細資訊,你可以使用 cat 和 grep 命令來顯示 meminfo 資訊:
1
cat
/proc/meminfo
另外你可以使用 free 命令來顯示動態的記憶體使用資訊,free 只是給你大概的記憶體資訊,而 meminfo 提供的資訊更加詳細。例如在 oschina 上的 free 命令執行結果:
mpstat mpstat是multiprocessor statistics的縮寫,是實時系統監控工具。其報告與cpu的一些統計資訊,這些資訊存放在/proc/stat檔案中。在多cpus系統裡,其不但能檢視所有cpu的平均狀況資訊,而且能夠檢視特定cpu的資訊。
再來看看 oschina 上的 mpstat 命令執行結果:
關於 mpstat 執行結果中的引數意思請參考此貼。
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, 是 nigel's monitor 的縮寫,是乙個使用很普遍的開源工具,用以監控 linux 系統的效能。nmon 監控多個子系統的效能資料,例如處理器的使用率、記憶體使用率、佇列、磁碟i/o統計、網路i/o統計、記憶體頁處理和程序資訊。nmon 也提供了乙個圖形化的工具:
要執行 nmon,你可以在命令列中啟動它,然後選擇要監控的子系統,這些子系統都對應有乙個快捷鍵,例如輸入 c 可檢視 cpu 資訊,m用於檢視記憶體,d用來檢視磁碟資訊等,你也可以使用 -f 命令將 nmon 的執行結果儲存到乙個 csv 檔案中,便於日後分析。
在每日的監控工作中,我發現 nmon 是我最常用的工具。
pmap 命令用來報告每個程序占用記憶體的詳細情況,可用來看是否有程序超支了,該命令需要程序 id 作為引數。
ps 和 pstree 命令是 linux 系統管理員最好的朋友,都可以用來列表正在執行的所有程序。ps 告訴你每個程序占用的記憶體和 cpu 處理時間,而 pstree 顯示的資訊沒那麼詳細,但它以樹形結構顯示程序之間的依賴關係,包括子程序資訊。一旦發現某個程序有問題,你可以使用 kill 來殺掉它。
sar 程式是系統監控工具裡的瑞士軍刀。該程式包含三個工具:sar 用來顯示資料,sa1 和 sa2 用來收集資料並儲存。sar 可用來顯示 cpu 使用率、記憶體頁資料、網路 i/o 和傳輸統計、程序建立活動和磁碟裝置的活動詳情。sar 和 nmon 最大的不同就是 sar 跟適合用作長期的監控,而 nmon 可以讓你快速的了解系統當前狀態。
strace 經常被認為是程式設計師除錯的工具,但不止如此。它可以記錄程序進行系統呼叫的詳情,因此它也是乙個非常好的診斷工具,例如你可以使用它來找出某個程式正在開啟某個配置檔案。
strace 也有乙個缺陷,但它在跟蹤某個程序時會讓該程序的效能變得非常差,因此請謹慎使用。
tcpdump 是乙個簡單、可靠的網路監控工具,用來做基本的協議分析,看看那些程序在使用網路以及如何使用網路。當然,如果你要獲取跟詳細的資訊,你應該使用 wireshark (下面我們會介紹).
top 命令顯示當前的活動程序,預設它是按消耗 cpu 的厲害程度進行排序,每5秒鐘重新整理一次列表,你也可以選擇不同的排序方式,例如 m 是按記憶體占用方式進行排序的快捷鍵。
uptime 命令告訴你這台伺服器從開機啟動到現在已經執行了多長時間了。同時也包含了從啟動到現在伺服器的平均負載情況,看看 oschina 的資料:
我已經忘了上次是為什麼重啟機器了,好像是換了個機櫃。
在 oschina 上執行 vmstat 的結果:
watch 是乙個非常實用的命令,基本所有的 linux 發行版都帶有這個小工具,如同名字一樣,watch 可以幫你監測乙個命令的執行結果,省得你一遍遍的手動執行。
舉例來說,linux 系統有乙個基礎命令 w,可以顯示當前的 uptime、負載還有登入的使用者,非常方便,但是如果我想監測這些資料,看看有沒有新使用者登入,看看某段的時間的負載是不是太大之類的,就得手動一遍遍的執行這個命令,然後檢視結果,雖然命令只有乙個字母,但是還是很鬱悶……
watch 就是幹這個用的,直接在 watch 後面接你想執行的命令,watch 就會幫你重複執行,並把每次的結果都更新在螢幕上~
要想監測 w 命令的執行結果,只要 watch w 就可以了:
預設 watch 會以 2s 的間隔重複執行命令,你也可以用 -n 引數指定時間間隔~
還有乙個實用的引數是 -d,這樣 watch 會幫你高亮顯示變化的區域,這樣更加一目了然了~
ctrl+c 就可以退出~
你可以拿他來監測你想要的一切命令的結果變化,比如 tail 乙個 log 檔案,ls 監測某個檔案的大小變化,看你的想象力了~
16 個 Linux 伺服器監控命令
如果你想知道你的伺服器正在做幹什麼,你就需要了解一些基本的命令,一旦你精通了這些命令,那你就是乙個 專業的 linux 系統管理員。有些 linux 發行版會提供 gui 程式來進行系統的監控,例如 suse linux 就有乙個非常棒而且專業的工具 yast,kde 的 kde system gu...
16個Linux伺服器監控命令
如果你想知道你的伺服器正在做幹什麼,你就需要了解一些基本的命令,一旦你精通了這些命令,那你就是乙個 專業的 linux 系統管理員。有些 linux 發行版會提供 gui 程式來進行系統的監控,例如 suse linux 就有乙個非常棒而且專業的工具 yast,kde 的 kde system gu...
16 個 Linux 伺服器監控命令
一旦你的伺服器是在控制台模式下執行,你就可以開始我們接下來的內容。iostat 命令用來顯示儲存子系統的詳細資訊,通常用它來監控磁碟 i o 的情況。要特別注意 iostat 統計結果中的 iowait 值,太大了表明你的系統儲存子系統效能低下。meminfo 可讓你獲取記憶體的詳細資訊,你可以使用...