【轉】淘寶性能測試要點

【轉】淘寶性能測試要點
 
 
  • 每臺服務器每秒平均PV量= ( (80%*總PV)/(24*60*60*(9/24)))/服務器數量,
  • 即每臺服務器每秒平均PV量=2.14*(總PV)/* (24*60*60) /服務器數量
  • 最高峯的pv量是1.29倍的平均pv值

【轉】淘寶性能測試要點

【轉】淘寶性能測試要點

  性能測試策略

  1.模擬生產線真實的硬件環境。

  2.服務器置於同一機房,最大限度避免網絡問題。

  3.以PV爲切入點,通過模型將其轉換成性能測試可量化的TPS。

  4.性能測試數據分爲基礎數據和業務數據兩部分,索引和SQL都會被測試到。

  5.日誌等級設置成warn,避免大量打印log對性能測試結果的影響。

  6.屏蔽ESI緩存,模擬最壞的情況。

  7.先單場景,後混合場景,確保每個性能瓶頸都得到調優。

  8.拆分問題,隔離分析,定位性能瓶頸。

  9.根據性能測試通過標準,來判斷被測性能點通過與否。

  10.針對當前無法解決的性能瓶頸,錄入QC域進行跟蹤,並請專家進行風險評估。

  性能測試壓力變化模型

【轉】淘寶性能測試要點

  a點:性能期望值

  b點:高於期望,系統資源處於臨界點

  c點:高於期望,拐點

  d點:超過負載,系統崩潰

  性能測試

  a點到b點之間的系統性能,以性能預期目標爲前提,對系統不斷施加壓力,驗證系統在資源可接受範圍內,是否能達到性能預期。

  負載測試

  b點的系統性能,對系統不斷地增加壓力或增加一定壓力下的持續時間,直到系統的某項或多項性能指標達到極限,例如某種資源已經達到飽和狀態等。

  壓力測試

  b點到d點之間,超過安全負載的情況下,對系統不斷施加壓力,是通過確定一個系統的瓶頸或不能接收用戶請求的性能點,來獲得系統能提供的最大服務級別的測試。

  穩定性測試

  a點到b點之間,被測試系統在特定硬件、軟件、網絡環境條件下,給系統加載一定業務壓力,使系統運行一段較長時間,以此檢測系統是否穩定,一般穩定性測試時間爲n*12小時。

 監控指標

  性能測試通常需要監控的指標包括:

  1.服務器 Linux(包括CPU、Memory、Load、I/O)。

  2.數據庫:1.Mysql 2.Oracle(緩存命中、索引、單條SQL性能、數據庫線程數、數據池連接數)。

  3.中間件:1.Jboss 2. Apache(包括線程數、連接數、日誌)。

  4.網絡: 吞吐量、吞吐率。

  5.應用: jvm內存、日誌、Full GC頻率。

  6.監控工具(LoadRunner):用戶執行情況、場景狀態、事務響應時間、TPS等。

  7.測試機資源:CPU、Memory、網絡、磁盤空間。

  監控工具

  性能測試通常採用下列工具進行監控:

  1.Profiler。一個記錄log的類,阿里巴巴集團自主開發,嵌入到應用代碼中使用。

  2.Jstat。監控java 進程GC情況,判斷GC是否正常。

  3.JConsole。監控java內存、java CPU使用率、線程執行情況等,需要在JVM參數中進行配置。

  4.JMap。監控java程序是否有內存泄漏,需要配合eclipse插件或者MemoryAnalyzer來使用。

  5.JProfiler。全面監控每個節點的CPU使用率、內存使用率、響應時間累計值、線程執行情況等,需要在JVM參數中進行配置。

  6.Nmon。全面監控linux系統資源使用情況,包括CPU、內存、I/O等,可獨立於應用監控。

  7.Valgrind。監控C/C++程序是否存在內存泄漏,基於linux環境。

  8.Vmmap和ApplicationVerifier。監控C/C++程序是否存在內存泄漏,基於windows環境。

  性能分析

  可按以下順序:

  中間件瓶頸(apache/jboss參數配置、數據庫參數配置)->

  應用服務的debug log ->

  應用服務的filter log ->

  本應用的性能瓶頸(SQL語句、索引、業務邏輯、線程池設置、算法)->

  服務提供者的性能瓶頸 ->

  相關聯的底層存儲應用的性能瓶頸

  分析標準

  通過性能指標的表現形式,分析性能是否穩定。比如:

  1.響應時間是否符合性能預期,表現是否穩定。

  2.應用日誌中,超時的概率,是否在可接受的範圍之內。

  3.TPS維持在多大的範圍內,是否有波形出現,標準差有多少,是否符合預期。

  4.服務器CPU、內存、load是否在合理的範圍內,等等。

  分析工具

  對於部分性能指標,可藉助自動分析工具,統計出數據的總體趨勢:

  1.LoadRunner analysis

  LoadRunner analysis是loadrunner的一個部件,用於將運行過程中所採集到的數據生成報表,主要用於採集TPS、響應時間、服務器資源使用情況等變化趨勢。

  2.Memory Analyzer

  Memory Analyzer工具可以解析Jmap dump出來的內存信息,查找是否有內存泄漏。

  3.nmon_analyser

  nmon工具可以採集服務器的資源信息。列出CPU、MEM、網絡、I/O等資源指標的使用情況。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章