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