本篇文章給大家談談linux監(jiān)控,以及l(fā)inux服務器監(jiān)控的幾個方法和命令對應的知識點,文章可能有點長,但是希望大家可以閱讀完,增長自己的知識,最重要的是希望對各位有所幫助,可以解決了您的問題,不要忘了收藏本站喔。
本文目錄
概述
今天主要對mpstat、iostat、sar、vmstat命令做一下總結,這幾個命令都是屬于運維人員必須掌握的,所以,能不偷懶就不偷懶了。
1、mpstat
mpstat是MultiprocessorStatistics的縮寫,是實時監(jiān)控工具,報告與cpu的一些統(tǒng)計信息這些信息都存在/proc/stat文件中,在多CPU系統(tǒng)里,其不但能查看所有的CPU的平均狀況的信息,而且能夠有查看特定的cpu信息,mpstat最大的特點是:可以查看多核心的cpu中每個計算核心的統(tǒng)計數(shù)據(jù);而且類似工具vmstat只能查看系統(tǒng)的整體cpu情況。
實例:查看多核cpu當前運行的狀況,每兩秒更新一次,一共更新5次
#mpstat25
說明:
%user在internal時間段里,用戶態(tài)的CPU時間(%),不包含nice值為負進程(usr/total)*100
%nice在internal時間段里,nice值為負進程的CPU時間(%)(nice/total)*100
%sys在internal時間段里,內(nèi)核時間(%)(system/total)*100
%iowait在internal時間段里,硬盤IO等待時間(%)(iowait/total)*100
%irq在internal時間段里,硬中斷時間(%)(irq/total)*100
%soft在internal時間段里,軟中斷時間(%)(softirq/total)*100
%idle在internal時間段里,CPU除去等待磁盤IO操作外的因為任何原因而空閑的時間閑置時間(%)(idle/total)*100
2、iostat
iostat用于輸出CPU和磁盤I/O相關的統(tǒng)計信息.
語法:
iostat[-c][-d][-h][-N][-k|-m][-t][-V][-x][-z][device[...]|ALL][-p[device[,...]|ALL]][interval[count]]
實例1:
--參數(shù)-d表示顯示設備磁盤的使用狀態(tài);-k表示某些使用block為單位的列強制使用kilobytes為單位,2表示數(shù)據(jù)每隔2秒刷新一次6表示一共刷新6次
#iostat-d-k26
說明:
tps:該設備每秒的傳輸次數(shù)(Indicatethenumberoftransferspersecondthatwereissuedtothedevice.)。
"一次傳輸"意思是"一次I/O請求"。多個邏輯請求可能會被合并為"一次I/O請求"。"一次傳輸"請求的大小是未知的。
kB_read/s:每秒從設備(driveexpressed)讀取的數(shù)據(jù)量;
kB_wrtn/s:每秒向設備(driveexpressed)寫入的數(shù)據(jù)量;
kB_read:讀取的總數(shù)據(jù)量;
kB_wrtn:寫入的總數(shù)量數(shù)據(jù)量;這些單位都為Kilobytes。
實例2:
--可以把K單位換成M
#iostat-d-m26
實例3:
--使用iostat查看cpu統(tǒng)計信息使用-C參數(shù)
#iostat-c26
實例4:-X參數(shù)
--iostat還有一個比較常用的-X參數(shù),該選項將用于顯示和io相關的擴展數(shù)據(jù)。
#iostat-d-x-k16
3、sar
sar(SystemActivityReporter系統(tǒng)活動情況報告)是目前Linux上最為全面的系統(tǒng)性能分析工具之一,可以從多方面對系統(tǒng)的活動進行報告,包括:文件的讀寫情況、系統(tǒng)調(diào)用的使用情況、磁盤I/O、CPU效率、內(nèi)存使用狀況、進程活動及IPC有關的活動等,sar命令有sysstat安裝包安裝。
語法:
sar[options][<interval>[<count>]]
--Optionsare:
-A:所有報告的總和
-b:顯示I/O和傳遞速率的統(tǒng)計信息
-B:顯示換頁狀態(tài)
-d:輸出每一塊磁盤的使用信息
-e:設置顯示報告的結束時間
-f:從制定的文件讀取報告
-i:設置狀態(tài)信息刷新的間隔時間
-P:報告每個CPU的狀態(tài)
-R:顯示內(nèi)存狀態(tài)
–u:輸出cpu使用情況和統(tǒng)計信息
–v:顯示索引節(jié)點、文件和其他內(nèi)核表的狀態(tài)
-w:顯示交換分區(qū)的狀態(tài)
-x:顯示給定進程的裝
-r:報告內(nèi)存利用率的統(tǒng)計信息
實例1:
--每2秒采樣一次,連續(xù)4次,觀察cpu的使用情況,并將采樣的結果以二進制形式存入當前目錄下的文件sar中,如下:
#sar-u-osar24
實例2:
--從二進制中調(diào)取
#sar-u-f/root/sar
實例3:
--報告每個cpu的狀態(tài),1秒一次,一共4次
#sar-p14
實例4:
--查看平均負載
#sar-q
實例5:
--查看內(nèi)存使用情況
#sar-r
實例6:
--查看系統(tǒng)swap分區(qū)的統(tǒng)計信息
#sar-w
實例7:
--磁盤使用統(tǒng)計信息
#sar-d
默認監(jiān)控:
sar55//CPU和IOWAIT統(tǒng)計狀態(tài)
(1)sar-b55//IO傳送速率
(2)sar-B55//頁交換速率
(3)sar-c55//進程創(chuàng)建的速率
(4)sar-d55//塊設備的活躍信息
(5)sar-nDEV55//網(wǎng)路設備的狀態(tài)信息
(6)sar-nSOCK55//SOCK的使用情況
(7)sar-nALL55//所有的網(wǎng)絡狀態(tài)信息
(8)sar-PALL55//每顆CPU的使用狀態(tài)信息和IOWAIT統(tǒng)計狀態(tài)
(9)sar-q55//隊列的長度(等待運行的進程數(shù))和負載的狀態(tài)
(10)sar-r55//內(nèi)存和swap空間使用情況
(11)sar-R55//內(nèi)存的統(tǒng)計信息(內(nèi)存頁的分配和釋放、系統(tǒng)每秒作為BUFFER使用內(nèi)存頁、每秒被cache到的內(nèi)存頁)
(12)sar-u55//CPU的使用情況和IOWAIT信息(同默認監(jiān)控)
(13)sar-v55//inode,fileandotherkerneltablesd的狀態(tài)信息
(14)sar-w55//每秒上下文交換的數(shù)目
(15)sar-W55//SWAP交換的統(tǒng)計信息(監(jiān)控狀態(tài)同iostat的siso)
(16)sar-x290655//顯示指定進程(2906)的統(tǒng)計信息,信息包括:進程造成的錯誤、用戶級和系統(tǒng)級用戶CPU的占用情況、運行在哪顆CPU上
(17)sar-y55//TTY設備的活動狀態(tài)
(18)將輸出到文件(-o)和讀取記錄信息(-f)
4、vmstat
vmstat命令是最常見的Linux/Unix監(jiān)控工具,可以展現(xiàn)給定時間間隔的服務器的狀態(tài)值,包括服務器的CPU使用率,內(nèi)存使用,虛擬內(nèi)存交換情況,IO讀寫情況。這個命令是我查看Linux/Unix最喜愛的命令,一個是Linux/Unix都支持,二是相比top,我可以看到整個機器的CPU,內(nèi)存,IO的使用情況,而不是單單看到各個進程的CPU使用率和內(nèi)存使用率(使用場景不一樣)。
實例1:
--第一個參數(shù)是采樣的時間間隔數(shù),單位是秒,第二個參數(shù)是采樣的次數(shù)
--如果想在一段時間內(nèi)一直監(jiān)控可執(zhí)行#vmstat2
#vmstat26
說明:
r表示運行隊列(就是說多少個進程真的分配到CPU),當這個值超過了CPU數(shù)目,就會出現(xiàn)CPU瓶頸了。這個也和top的負載有關系,一般負載超過了3就比較高,超過了5就高
,超過了10就不正常了,服務器的狀態(tài)很危險。top的負載類似每秒的運行隊列。如果運行隊列過大,表示你的CPU很繁忙,一般會造成CPU使用率很高。
b表示阻塞的進程
swpd虛擬內(nèi)存已使用的大小,如果大于0,表示你的機器物理內(nèi)存不足了,如果不是程序內(nèi)存泄露的原因,那么你該升級內(nèi)存了或者把耗內(nèi)存的任務遷移到其他機器。
free空閑的物理內(nèi)存的大小
buffLinux/Unix系統(tǒng)是用來存儲,目錄里面有什么內(nèi)容,權限等的緩存
cachecache直接用來記憶我們打開的文件,給文件做緩沖
si每秒從磁盤讀入虛擬內(nèi)存的大小,如果這個值大于0,表示物理內(nèi)存不夠用或者內(nèi)存泄露了,要查找耗內(nèi)存進程解決掉。
so每秒虛擬內(nèi)存寫入磁盤的大小,如果這個值大于0,同上
bi塊設備每秒接收的塊數(shù)量,這里的塊設備是指系統(tǒng)上所有的磁盤和其他塊設備,默認塊大小是1024byte
bo塊設備每秒發(fā)送的塊數(shù)量,例如我們讀取文件,bo就要大于0。bi和bo一般都要接近0,不然就是IO過于頻繁,需要調(diào)整。
in每秒CPU的中斷次數(shù),包括時間中斷
cs每秒上下文切換次數(shù)
us用戶CPU時間
sy系統(tǒng)CPU時間,如果太高,表示系統(tǒng)調(diào)用時間長,例如是IO操作頻繁。
id空閑CPU時間
wt等待IOCPU時間。
這種基礎命令一定要會,建議大家熟記,后面會分享更多devops和DBA方面的內(nèi)容,感興趣的朋友可以關注下~
學到以下程度:
1.熟練掌握Linux操作系統(tǒng)的基本操作和命令;
2.熟悉Linux系統(tǒng)的文件系統(tǒng)結構和管理;
3.熟悉Linux系統(tǒng)的用戶和權限管理;
4.熟練使用Shell腳本編程;
5.熟悉常見的Linux服務器軟件(如Web服務器、數(shù)據(jù)庫服務器、郵件服務器等)的安裝配置和維護;
6.熟悉Linux系統(tǒng)的網(wǎng)絡配置和管理;
7.熟悉Linux系統(tǒng)的性能監(jiān)測和優(yōu)化;
8.熟悉Linux系統(tǒng)的安全管理和防護;
9.熟悉虛擬化技術和容器技術;
10.具備良好的溝通能力和團隊合作能力
云幫手作為跨云管理工具軟件來說,其功能還是十分強大而且全面的。
1.批量管理多臺云主機,
2.跨云管理跨所有云商云主機,兼容操作系統(tǒng),
3.支持遠程登錄管理文件,
4.支持云主機系統(tǒng)修復,安全防護,
5.24小時全天監(jiān)控云主機資源,資源告警,自動巡航,
6.操作簡單,上手容易,界面明了,一鍵部署,一鍵修復功能,而且還是免費使用的,只要在官網(wǎng)下載注冊就能使用了。
云幫手,可以自行下載體驗一下:https://www.cloudx.cn/download?utm_source=cai-wukong
使用守護進程。即創(chuàng)建一個監(jiān)控程序,該程序就是一個簡單的while循環(huán),每隔一段時間檢測一下應用程序進程是否還在,若不存在了則重新啟動。當然,腳本也可以。
系統(tǒng)管理員的職責是進行系統(tǒng)資源管理、設備管理、系統(tǒng)性能管理、安全管理和系統(tǒng)性能監(jiān)測。管理的對象是服務器、用戶、服務器的進程及系統(tǒng)的各種資源等。以上詳細內(nèi)容,在傳智播客社區(qū)就有詳細的解釋,仔細看看論壇的技術內(nèi)容。
ps是一個Linux命令,顯示有關系統(tǒng)上當前正在運行的進程的信息。
一些常見的選項ps是:
-aux:以面向用戶的進程狀態(tài)格式顯示所有用戶的所有進程的信息。
-ef或-e:以比默認格式提供更多信息的格式顯示有關所有進程的信息。
-uUSER:僅顯示有關以指定用戶身份運行的進程的信息。
請注意,ps命令的選項和輸出可能因類Unix操作系統(tǒng)而異。查閱手冊頁(manps)以獲取更多信息和用法示例始終是個好主意。
你的監(jiān)控我理解是監(jiān)控他退出的意思,姑且就這么假定吧。如果是同步等待他退出,那么比較簡單,pthread_join,寫過Linux下多線程開發(fā)的應該都懂。如果是異步,那么只能遺憾地告訴你,沒有。但是,沒有我們可以自己造,比如說,退出前寫個pipe,主線程去epoll_wait就好了,更高級點兒用eventfd。當然,不要忘記join是必須的,除非線程被你detach了。
關于linux監(jiān)控,linux服務器監(jiān)控的幾個方法和命令的介紹到此結束,希望對大家有所幫助。
搜浪信息科技發(fā)展(上海)有限公司 備案號:滬ICP備17005676號