一、前言
如果將Linux系統當做一個車間的話,
CPU
就是"工人",當CPU使用率過高時,計算速度就會下降;內存(Memory)
就是"臨時存儲貨物的倉庫",相較於磁盤來說,內存讀寫速度會高很多;磁盤(Disk)
就是"車間中真正的倉庫",用於數據持久化;網絡(Network)
就是"車間中傳送帶",用於數據傳輸。交換區(Swap)
就是"臨時倉庫與倉庫之間的轉換區",當物理內存不足時,拿出部分磁盤空間當SWAP分區(虛擬成內存)使用,從而解決內存容量不足情況。
性能測試的過程中,性能監控是必不可少的,而其中
操作系統級別的監控
也是最爲重要的一環。對於操作系統的監控,大致可以分爲下面六個模塊的監控:CPU
、Memory
、IO
、Network
、System
、Swap
。而CPU是這六個模塊中最爲重要的分析對象。
二、六大監控模塊指標及相關監控命令
2.1 CPU
一般來說,系統監控中最重要的就是CPU的監控。而CPU監控中,監控的數據又大致可以分爲下面這些部分。
- 在上面這些監控數據中,我們需要經常關注的數據是
user
,iowait
,system
,cpu隊列
,softirq
。這些相關的數據,又可以通過相關的Linux命令得到。 - 監控CPU中這些數據的命令或方式有很多,例如top、vmstat、lscpu、cpuinfo、atop、mpstat、pidstat、Dstat、sar、Nmon、cpupower、irqbalance;這些命令都有自己的特點和侷限性,一般來說監控CPU比較常用的是
top
和vmstat
。 - 對於命令的使用,我們應該是想到要監控什麼數據,再想到用什麼命令。而不是一上來就使用命令,查看所有的數據。這裏以top命令爲例,解釋相關的數據。
2.2 IO/Disk
當一個系統調優到非常好的時候,基本上會卡在兩個環節上,對計算密集型的應用來說,會卡在 CPU 上;對 I/O 密集型的應用來說,瓶頸會卡在 I/O 上
。
- 對於磁盤IO的監控,也有很多的Linux命令,例如iostat、iotop、pidstat、Dstat、Nmon、sar。比較常用的就是
iostat
命令。 - 一般來說,使用
iostat
命令查看整體數據,iostat -x
命令查看詳細數據。
2.3 Swap(交換分區)
當物理內存不足會使用Swap(交換區或者虛擬內存)。其監控的數據如下:
-
對於Swap的監控,也有很多的Linux命令,例如top、vmstat、Nmon、sar、Meminfo、smen。比較常用的就是
top
命令和vmstat
命令。 -
一般來說,用top命令查看Swap的基本信息,使用vmstat查看si和搜數據。
2.4 System
- 對於System的監控,也有很多的Linux命令,例如top、vmstat、atop、vmstat、pidstat、Nmon、sar。比較常用的就是
top
命令和vmstat
命令。
2.5 Network
- 對於NetWork的監控,也有很多的Linux命令,例如netstat、ifstat、iftop、Ethtool。其中比較常用的就是
netstat
。 - 其中netstat常用的兩個命令爲
netstat -i
和netstat -ntlp
。
2.6 Memory
- 對於Memory的監控,也有很多的Linux命令,例如top、atop、vmstat、pidstat、Dstat、Nmon、sar、free、smem。其中比較常用的就是
top
、vmstat
、free
。
三、寫在最後
關於Linux服務器的監控,應該是我們想到需要什麼數據時,才從而想到使用什麼命令。上面只說了需要監控的指標和使用的命令,Linux相關命令詳細使用就自行網上查一下即可