JMeter—系統效能分析思路(十三)

Tynam.Yang發表於2018-06-10

參考《全棧效能測試修煉寶典JMeter實戰》第九章 效能監控診斷 第二節 系統效能分析思路和第三節 定位分析

  系統在工作負載中的效能受到許多因素影響,處理器速度、記憶體容量、網路或磁碟I/O控制器的數量以及磁碟的容量和速度是所以工作負荷的重要效能特徵元件。還有其他應用程式自身的效能特徵、工作負荷的特性、應用程式間的通訊行為、磁碟或網路上的資料訪問模式,還有終端使用者對應用程式的使用模型。對特定工作負荷調優時,常常首先要假定許多物理環境特徵,例如處理器數量、處理器型別、磁碟數量等保持不變。效能分析的主要目標是識別出工作負荷中哪些元件是當前提高效能和整體吞吐率的瓶頸,以及當工作負荷已經導致硬體能力飽和時,哪些硬體配置的改進會提高該工作負荷的吞吐率和效能。主要從以下幾塊進行分析:


一、CPU
  CPU是作業系統中執行的根本,他的執行速度與效能好壞很大程度上決定了系統整體的效能快慢,現在的cpu已經由之前的單核發展到多核,使得處理能力更強。當cpu處於滿負載狀態時,我們要結合系統附帶的一些監控分析工具,檢查系統日誌等輔助分析cpu的使用情況。

Linux下檢視cpu效能命令:
  檢視物理cpu個數:cat /proc/cpuinfo |grep "physical id"|sort|uniq|wc -l
  檢視每個物理cpu的核數量:cat /proc/cpuinfo |grep "cpu cores"|wc -l
  檢視cpu和cpu核數量的使用數量:cat /proc/cpuinfo |grep "processor"|wc -l
  實時監控CPU的使用情況:top
  其他命令:vmstat、sar、dstat、mpstat、ps

定位分析:
  當系統利用率大於50%時,需要關注;大於70%需要密切關注;大於90%時,情況比較嚴重


二、記憶體
  記憶體太小會阻塞程式,甚至會導致應用程式被殺死,更嚴重的引起系統重啟。記憶體太大,容易浪費。同時也要兼顧虛擬記憶體的大小,當系統的實體記憶體不夠用的時候,就需要實體記憶體釋放一部分以供程式正常使用。這些被釋放的空間被臨時保持到虛擬記憶體空間中,等需要時再次從虛擬記憶體中恢復儲存的資料到實體記憶體。系統總是在記憶體不夠用的時候才切換記憶體。

Linux下記憶體檢視命令:free –m
  其他命令:vmstat、sar、dstat、top、ps

定位分析:
  當系統利用率大於50%時,需要關注;大於70%需要密切關注;大於90%時,情況比較嚴重


三、網路
  系統之間的通訊是通過網路進行傳輸的,因此時間、網路延遲、阻塞等都可以影響系統效能。
  在系統中,要考慮對應的網路是否到達、防火牆是否開啟、埠的訪問、寬頻是否被限制、路由的定址、網路的時延等

定位分析:
  通過命令sar、ifconfig、netstat以及檢視net的dev速率,通過檢視發現收發包的吞吐速率達到網路卡的最大上限,網路資料包文有因為這類原因2⃣而引發的丟包、阻塞等現象。測試過程中為了減少網路問題的影響,選擇在區域網中進行。


四、I/O
  磁碟資料的讀寫的效能也會直接影響系統程式的效能,磁碟I/O系統是系統中最慢的部分。主要是CPU處理比磁碟物理操作塊好幾個數量級。針對I/O的場景模型,要考慮的有TPS、平均I/O資料、平均佇列長度、平均服務時間、平均等待時間、IO利用率等指標。

定位分析:
  衡量系統IO的使用情況,可以用sar、iostat、iotop等命令進行系統的IO監控分析。當系統利用率大於40%時,需要關注;大於60%需要密切關注;大於80%時,情況比較嚴重


四、其他分析方向
  硬體
  資料庫
  中介軟體
  程式部分(前端、後端、業務邏輯等)
  系統架構
  系統受到病毒感染

 

相關文章