工欲善事情,必先利其器,生產環境中的服務器在處理請求并生成回應數據的時間主要消耗在服務器端,包括了眾多的環節,如何全面了解我們linux服務器的CPU使用率、使用時間、內存占用比例、磁盤IO數據、網絡相關數據等等眾多指標,保證我們的linux服務器順利完成每一個請求,怎能沒有幾個趁手的利刃,而今天就讓我們見識一下系統管理中三大利刃。
相傳一把三尺長的軟劍,叫七星絕命劍,劍刃上嵌著七顆星狀的暗器,一劍刺出,使劍人的內力勁透劍身之時,那七顆星狀的暗器便飛脫疾出,出其不意地取人性命,(見古龍《吸血娥》)。而htop便是我們今天所講的第一把利刃,和上面傳說中的七星絕命劍類似,有著七個最常用命令,讓我們先來看一下htop的真面目:
從上圖可以看出,相較于CentOS發行版上系統自帶的top工具,htop工具無論是信息內容豐富程度,還是在用戶界面的友好度上,都有著無可比擬的優勢,而且htop工具支持交互式命令,下面讓我們來認識一下htop工具常見的七個交互式命令。
u :具有過濾功能,能顯示用戶指定用戶的進程
s :選定某個進程后,使用該命令可以跟蹤該進程所發起的系統調用
l :選定某個進程后,使用該命令可以顯示該經常打開的文件有那些
t :直接使用該命令可以顯示進程的層級機構
a :使用該命令可以設定某個進程的cpu親緣性
k :使用該命令可以結束某個指定進程
h :該工具還有眾多功能,使用該命令可以獲取該工具其他幫助信息
以上七個命令就是htop工具最常用的命令,掌握好這七個命令就好比擁有了七星絕命劍的七顆星狀暗器,殺人于無形,旨在一瞬間,但是如何把握這七個形狀暗器的力度和功用,需要我們對htop有著更深入的理解,接下來我們詳細介紹htop的眾多輸出信息的詳解:
CPU usage bar:該行主要顯示CPU使用情況,而且不光這些,htop還為將不同顏色來區分是使用情況,藍色的表示low-prority使用,綠色的表示normal使用情況,紅色的表示kernel使用情況,青色的表示vistualiz使用情況。
Memory bar:該行主要表示內存使用情況,同樣的htop使用了不同顏色來區分是使用情況,綠色的表示已經使用內存情況,藍色的表示用于緩沖的內存使用情況,黃色的表示用于緩存的內存使用情況。
Swap bar:該行主要顯示交換分區使用情況,當你發現你的交換分區已經派上用場的時候,說明你的物理內存已經不足,需要考慮增加內存了。
PID:表示進程號
USER:發起該進程的用戶名
PRI:進程優先級
NI:nice值
VIRT:進程需要的虛擬內存
RES:常駐內存,也就是物理內存
SHR:共享內存
S:進程的運行狀況:R表示正在運行,S表示休眠,Z表示僵死狀態
CPU%:占用的CPU使用率
MEM%:物理內存使用率
TIME%:占用CPU的累計時長
Command:進程啟動的啟動命令名稱即路徑
有了以上的詳解,我想htop這把利刃將會發揮最大的用處。
相傳君子劍劍身烏黑,沒半點光澤,就似一段黑木一般,和平常的寶劍不同,這劍既無尖頭,又無劍鋒,圓頭鈍邊,倒有些似一條薄薄的木鞭,但寒氣逼人,而且鋒銳異常。此劍與淑女劍一模一樣,大小長短,全無二致,雙劍的材料完全相同,都具有極強的磁性,如果放的距離較近,雙劍會自動吸在一起此劍后落到少年楊過手中,與小龍女手里的淑女劍聯劍出擊,以玉女素心劍法威震天下,(見《神雕俠侶》)。而glances就是我們要說的第二把利刃,與相傳的君子劍有相似之處,glances支持客戶端/服務器模式,遠程模式使用將會有奇效,接下來我們認識這把君子淑女劍吧。
glances并不是CentOS發行版默認安裝的工具,需要在epel源里面安裝使用,首先讓我們先來認識一下glances吧,如下圖:
glances工具支持的選項眾多,我們先來認識一下glances的常用選項:
-b :以byte/s為單位顯示網卡設備
-d :禁用或者關閉顯示磁盤IO功能模塊
-f :通常和-o一起使用設置輸出文件位置即格式
-o :指明輸出的格式,通常為{CSV|HTML}
-m :關閉mount功能模塊
-n :關閉網絡功能模塊
-t :指明刷新時長,默認為3秒
-1 :單獨顯示每顆CPU相關的負載數據信息
以上就是glances工具常用選項,同時glances工具還支持在工作界面下直接按相對應的選項就可以關閉或者設置相關功能的,上面曾說過glances工具支持C/S模式,那它是如何在C/S模式下工作的那? 首先:server端以監聽模式啟動glances;其次:client端以遠程模式啟動glances遠程連入指定服務器,并獲取server上相關的性能數據。
服務端命令:glances -s -B IPADDRESS(指定用于監聽的本地地址)
客戶端命令:glances -c IPADDRESS(指明連入的服務器地址)
glances所顯示的豐富信息包括了系統運行的眾多模塊,包括了cpu相關模塊,多核情況下每個核心的負載情況,內存使用模塊,交換分去使用情況,網絡使用狀況,磁盤IO使用情況,以及各分區掛載情況,我相信通過了解以上系統運行期間的狀況,一定能判斷出當前系統運行是所出現的問題,幫助我們找出問題所在。
相傳當初傲日并非打算鑄造「絕世好劍」,而是要鑄造「敗亡之劍」,可惜「敗亡」的鑄造過程太過邪異,每次鑄劍,均會造成人命傷亡,故此傲家中人棄「敗亡」而改鑄「絕世」。鑄劍的最后步驟是以三毒之血「貪」(劍貪之血),「瞋」(步驚云之血),「癡」(斷浪之血)煉制。但所鑄成的只是威力神髓所在的真元,而真正的劍體已藏于千萬鑄好的絕世好劍中,絕世好劍本身有吸攝天地靈氣之能,同樣也可吸收別人功力轉為己用。位列當世十大神兵之一,見《風云》。而我們今天所說的第三把系統管理的兵刃,于絕世好劍有過之而不及,絕世好劍需要集三毒之血(劍貪之血)、(步驚云之血)、(斷浪之血)煉制而成,而dstat整合了vmstat、iostat、netstat、ifstat四款工具的功能于一身,功能無比強大,首先來看看這個利刃的廬山真面目,如下圖:
通過上圖可以更直觀的看出系統各功能模塊的使用狀況,而且dstat是CentOS默認提供的一款工具,并且使用起來十分的靈活,可以通過不同的組合來顯示出我們需要的功能模塊,下面來認識一下dstat這款工具的主要選項有那些:
-c :顯示CPU相關的統計數據
-d :顯示磁盤相關的統計數據
-g :顯示Page相關的速率數據
-i :顯示中斷相關的統計數據
-l :顯示load average相關的統計信息
-m:顯示內存相關的統計信息
-n :顯示網絡相關的統計數據速率信息
-N :指定接口
-p :顯示進程相關的統計數據
-r :顯示IO請求的速率
-s :顯示swap交換分區的相關數據
-y :顯示系統相關的數據包括中斷和進程間切換等相關信息
–top-cpu:顯示最占用CPU的進程
–top-bio:顯示最消耗塊級別IO的進程
–top-time:顯示最占用CPU時長的進程
–top-io:顯示最占用io的進程
–top-mem:顯示最占用內存的進程
–ipc:顯示進程間通信相關的速率數據
–tcp:顯示tcp套接字相關的數據
–udp:顯示udp套接字的相關數據
–raw:顯示raw套接字相關數據
–unix:顯示unix sock接口相關的統計數據
-a :相當于-cdngy
以上就是dstat工具的常用選項,之所以說該使用該工具十分領過是因為它即可以加上眾多的參數來顯示系統運行時豐富的各個功能模塊的狀態信息,如下圖:
同時又可以根據自己的需要來單獨顯示某一個功能模塊的信息或者顯示當前系統最占用CPU的進程,如下圖:
以上就是系統管理中的三把利刃,只要精通任何一個工具,都有助于我們更加深入的了解我們系統運行過程中的問題和不足,及時的發行并解決這些問題,但同時我們也應該認識到,所謂的這些工具都是通過整合或分析/proc/這個偽文件系統,為什么說它是偽文件系統那,因為它只存在內存當中而不占用外存空間,它是以文件系統的方式訪問系統內核數據的操作提供接口,要想使用好以上三個工具,還需要更深入的理解系統是究竟怎么運行起來的,以及系統運行的原理是什么,當我們真的理解了這些,我想那個時候就是我們自己制作工具開始,正所謂真正的高手也都是制作工具的高手,就如同江湖里說的最好的境界乃是無劍勝有劍,摘葉飛花皆可傷人。
原創文章,作者:zhang,如若轉載,請注明出處:http://www.www58058.com/9255
glances 已學習,其它兩個工具一直在用,非常鋒利!
@stanley:哈哈,看來你已經能稱霸武林了!