性能測試三十:監控之命令監控


性能監控是性能測試過程中非常重要的一個環節,當在壓測過程中出現性能瓶頸時,需要綜合詳細的監控數據對問題進行分析。整個系統架構中的每一個環節都需要做監控(壓力機、網絡、各中間件、各服務器硬件資源等)。性能監控做好了,就能幫助你快速的定位問題,找到系統的性能瓶頸。

 

操作系統級別監控

 

cpu監控

 

Top命令:

Top命令是Linux下一個實時的、交互式的,對操作系統整體監控的命令,可以對CPU、內存、進程監控。 是Linux下最常用的監控命令。

 

起一個項目,給點壓力,看看效果

一個並發,永遠跑,看一下

 

load average:過去某段時間內CPU平均的負載情況,(排隊要執行的的進程數)

第一個值所在的位置:過去一分鍾的

第二個值所在的位置:過去五分鍾的

第三個值所在的位置:過去十五分鍾的

 一般來說,排隊的數量最好不要超過cpu的核數,比如4核,但是數字大於4,則代表有進程在排隊,等待執行

Task:當前有多少個任務

Cpu(s):反映cpu的一些數據:

  us:用戶使用(用戶進程,如myslq、tomcat、qq)的cpu的百分比

  sy:系統使用的cpu的百分比

  ni:指進程的優先級,一般都是0,不用管

  id:idle,空閑的:=1-us-sy

  wa:wait,因為有些任務是需要些磁盤的(如tomcat需要寫日志),而CPU的速度比磁盤寫入的速度更快,所以有了這個等待寫入數據的狀態,如果這個值比較大的話,說明磁盤寫入速度比較慢,壓力比較大,磁盤那塊很可能就有問題

  hi、si、st:跟中斷相關的,不用關注

按1會展示每個核的具體情況,由於我的是單核,所以按了1也只有這一個

 

以下截圖為16核的

Mem:memory,內存,一般如果是要看內存不使用top命令,下面有一個專門看內存的命令

Swap:交換分區,磁盤上的一塊區域,當內存滿時,可以充當臨時內存,但是速度還是比真實的內存滿很多,比如,系統一直運行中,到某個時候,內存已經滿了,這個時候還想啟動一個程序,cpu會檢測,有哪些程序已經長時間沒活動了,但是還占用着內存,這個時候,會把這些程序占用的內存,轉移到swap空間中,騰出一些空間保證用戶能繼續啟動程序(如WPS啟動着最小化過一段時間不用,再切換回來的時候,會很卡),所以說這個指標反映出內存是否足夠的情況,若used數據一直在漲,則說明內存不足

RES:當前進程所占的真實內存的大小

%CPU:指當前進程占cpu使用的比例,為所有核占用之和,比如8核,這里有可能統計出來是800

%MEM:當前進程占用內存的百分比

 top命令默認是以占用cpu的比例降序排列的,若想以占用內存的比例來排序,按M即可,按P切回cpu

 

 

內存監控

free命令可以查看當前系統內存的使用情況

free -m 以MB為單位顯示系統內存的使用情況,同理,也可以使用-k、-g等其他的單位顯示,此處換算單位精度的問題,檢測為1006M,實際為1G

 

free命令從兩個維度統計了內存的使用情況
第一行Mem:

從操作系統角度統計內存的total(總共)、used(已使用)、free(剩余)、buffers(往內存寫內容的時候的緩存)、cached(讀內存的時候的緩存,類似於Redis和Mysql的關系)

所以,實際剩余內存=free+buffer+cached

 

第二行-/+buffers:

從應用程序角度統計內存的total、used、free、buffers、cached

buffer和cache
兩者都是Linux下的緩存機制,其中buffer為寫操作的緩存,cache為讀操作的緩存

swap
交換空間,磁盤上的一塊空間,當系統內存不足時,會使用交換空間

 

 磁盤監控

iostat命令可以查看當前機器磁盤io的數據

 

命令:iostat -x -k 1
-x:展示磁盤的擴展信息

-k:以k為單位展示磁盤數據

1:每1秒刷新一次

 

avg-cpu:監控cpu的指標

Device:真正監控磁盤的數據,一般數據庫服務器消耗磁盤比較多,應用程序一般消耗磁盤不多,消耗cpu比較多

展示結果
util:磁盤IO使用率,單位%,反映磁盤的繁忙程度,上限100%,一般達到90%就代表磁盤壓力非常大了,已經達到瓶頸了, 當看到util比較大 的時候,看看rkb和wkb的情況,看看是那個造成的
r/s:每秒讀請求數
w/s:每秒寫請求數
rkb/s:每秒讀磁盤字節數
wkb/s:每秒寫磁盤字節數

 

df命令可以查看當前系統磁盤空間的使用情況
命令:df -h

 

磁盤速度測試,如果磁盤讀寫的性能極差,那么壓測出來的結果極有可能不准,比如我的2.7M,肯定太小了,一般至少是50多MB/秒
命令:dd if=/dev/zero of=/export/ddtest bs=8k count=1000000 oflag=direct

 過幾秒鍾后Ctrl+c結束

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM