5个Linux常用的系统检测工具
前言
使用Linux系統也有很長一段時間,很少想著去監控服務器的性能,想要寫這篇博客也是源于想要通過這種方式將這些碎片的知識記錄下來,且試用一下其內置的命令和一些附加的工具。
這些工具提供了獲取系統活動的相關指標,可以使用這些工具來查找性能問題的可能原因,接下來提到的是一些基本的命令,用于系統分析和服務器調試等,例如
1. 找出系統瓶頸
2. 磁盤(存儲)瓶頸
3. CPU和內存瓶頸
4. 網絡瓶頸
1. top - 進程活動監控命令
top命令會顯示Linux的進程,從圖中可以看出它提供了一個運行中系統的實時動態圖,顯示了實際的進程活動,默認情況下,會顯示服務器上運行的CPU占用率最高的任務,并且每五秒更新一次(可更改),top的詳細命令和參數意思可以參考這篇博客 。
圖中主要參數含義:
1. up 11:24 是系統運行時間,格式是,時:分
2. load average:0.07,0.05,0.01 系統負載,即任務隊列的平均長度,是那個值分別是前1分鐘、5分鐘、15分鐘到現在的平均值
3. zombie 是僵尸進程
4. Mem 是物理內存總量,buffers 是用作內存緩存的內存量
5. Swap 是交換區的總量,cached是換成的交換區總量
6. PR 優先級;
7. NI nice值,負值表示高優先級,正值表示低優先級;
8. RES j進程使用的、未被換出的物理內存大小,單位kb;
9. SHR 共享內存大小,單位kb;
10. S 進程狀態:D=不可中斷的睡眠狀態、R=運行、S=睡眠、T=跟蹤/停止、Z=僵尸進程
使用方法
快捷鍵
top [-] [d] [p] [q] [c] [C] [S] [s] [n]t 顯示匯總信息 m 是否顯示內存信息 A 根據各種系統資源的利用率對進程進行排序,有助于快速識別系統中性能不加的任務 f 進行top交互式配置屏幕,根據需求設置top的顯示,默認情況下僅顯示比較重要的PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列 o 交互式調地調整top每一列的順序 r 調整優先級(renice) k 殺掉進程(kill) z 切換到彩色或者黑白模式2. vmstat - 虛擬內存統計
vmstat 虛擬內存統計,顯示有關進程、內存、分頁、塊IO、中斷和CPU活動等信息。具體信息可以參考這篇博客
注:一般vmstat工具的使用是通過兩個數字參數來完成的,第一個參數是采樣的時間間隔數,單位是秒,第二個參數是采樣的次數,如:
vmstat 3 2 ## 參數1=3 表示間隔3秒;參數2=2,表示采樣2次vmstat 5 ## 表示vmstat每2秒采集數據,一直采集,直到我結束程序(如上圖)圖中主要參數含義:
1.r 表示運行隊列(就是說多少個進程真的分配到CPU),當這個值超過了CPU數目,就會出現CPU瓶頸了。這個也和top的負載有關系,一般負載超過了3就比較高,超過了5就高,超過了10就不正常了,服務器的狀態很危險。top的負載類似每秒的運行隊列。如果運行隊列過大,表示你的CPU很繁忙,一般會造成CPU使用率很高。
2.b 表示阻塞的進程
3.swpd 虛擬內存已使用的大小,如果大于0,表示你的機器物理內存不足了,如果不是程序內存泄露的原因,那么你該升級內存了或者把耗內存的任務遷移到其他機器。
4.free 空閑的物理內存的大小
5.buff Linux系統是用來存儲,目錄里面有權限等的緩存
6.cache cache直接用來記憶我們打開的文件,給文件做緩沖,把空閑的物理內存的一部分拿來做文件和目錄的緩存,是為了提高程序執行的性能,當程序使用內存時,buffer/cached會很快地被使用。
7.si 每秒從磁盤讀入虛擬內存的大小,如果這個值大于0,表示物理內存不夠用或者內存泄露了,要查找耗內存進程解決掉。
8.so 每秒虛擬內存寫入磁盤的大小,如果這個值大于0,同上。
9.bi 塊設備每秒接收的塊數量,這里的塊設備是指系統上所有的磁盤和其他塊設備。
10.bo 塊設備每秒發送的塊數量,例如我們讀取文件,bo就要大于0。bi和bo一般都要接近0,不然就是IO過于頻繁,需要調整。
11.in 每秒CPU的中斷次數,包括時間中斷
12.cs 每秒上下文切換次數,例如我們調用系統函數,就要進行上下文切換,線程的切換,也要進程上下文切換,這個值要越小越好,太大了,要考慮調低線程或者進程的數目。
13.us 用戶CPU時間。
14.sy 系統CPU時間,如果太高,表示系統調用時間長,例如是IO操作頻繁。
15.id 空閑 CPU時間,一般來說,id + us + sy = 100,一般我認為id是空閑CPU使用率,us是用戶CPU使用率,sy是系統CPU使用率。
16.wt 等待IO CPU時間。
其他命令
sudo vmstat -m ##顯示slab緩存的利用率vmstat -a ## 獲取有關活動和非活動內存頁面的信息3. w - 找出登錄的用戶以及他們在做什么
w 命令顯示當前在該系統上的用戶及其進程,具體參考這篇博客
語 法:w [-fhlsuV][用戶名稱]補充說明:執行這項指令可得知目前登入系統的用戶有那些人,以及他們正在執行的程序。單獨執行w 指令會顯示所有的用戶,您也可指定用戶名稱,僅顯示某位用戶的相關信息。參 數:-f 開啟或關閉顯示用戶從何處登入系統。 -h 不顯示各欄位的標題信息列。 -l 使用詳細格式列表,此為預設值。 -s 使用簡潔格式列表,不顯示用戶登入時間,終端機階段作業和程序所耗費的CPU時間。 -u 忽略執行程序的名稱,以及該程序耗費CPU時間的信息。 -V 顯示版本信息。4. ps - 報告當前系統的進程狀態
ps命令用于報告當前系統的進程狀態。可以搭配kill指令隨時中斷、刪除不必要的程序。
語 法:ps [選項]參 數:-a 顯示所有終端機下執行的程序,除了階段作業領導者之外 a 顯示現行終端機下的所有程序,包括其他用戶的程序-A 顯示所有程序 c 列出程序時,顯示每個程序真正的指令名稱,而不包含路徑,選項或常駐服務的標示-C 指定執行指令的名稱,并列出該指令的程序的狀況 -e 此選項的效果和指定"A"選項相同 e 列出程序時,顯示每個程序所使用的環境變量f 用ASCII字符顯示樹狀結構,表達程序間的相互關系-H 顯示樹狀結構,表示程序間的相互關系 r 只列出現行終端機正在執行中的程序-T 顯示現行終端機下的所有程序 u 以用戶為主的格式來顯示程序狀況-au 顯示較詳細的資訊 -aux 顯示所有包含其他使用者的行程 -help 顯示幫助信息 -version 顯示版本注:由于ps命令能夠支持的系統類型相當多,所以選項也多得離譜,其實還有很多不常用的選項沒有列出來。感興趣的可以參考博客。
5. netstat - 檢驗各端口的網絡連接情況
netstat命令用于顯示TP,TCP,UDP和ICMP等協議相關的統計數據,一般用于檢驗本機各端口的網絡連接情況。
語 法:netstat [選項]參 數:-a 顯示所有選項,默認不顯示LISTEN相關 -t 僅顯示TCP相關選項 -u 僅顯示UDP相關選項 -n 拒絕顯示別名,能顯示數字的全部轉化成數字 -l 僅列出有在Listen的服務狀態 -p 顯示建立相關連接的程序名 -r 顯示路由信息,路由表 -e 顯示擴展信息,例如uid等 -s 按各個協議進行統計 -c 每隔一個固定時間,執行該netstat命令注: LISTEN和LISTENING的狀態只有用-a或者-l才能看到
常用的查看網絡TCP網絡連接命令為netstat -ntlp ,我們能查看其連接狀態,IP地址,以及連接的端口號等信息,效果如下圖所示:
總結
以上是生活随笔為你收集整理的5个Linux常用的系统检测工具的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: “免费项目管理软件”20款大盘点!你认识
- 下一篇: UG编程使用技巧