- 每台伺服器每秒平均PV量= ( (80%*總PV)/(24*60*60*(9/24)))/伺服器數量,
- 即每台伺服器每秒平均PV量=2.14*(總PV)/* (24*60*60) /伺服器數量
- 最高峰的pv量是1.29倍的平均pv值
性能測試政策
1.模拟生産線真實的硬體環境。
2.伺服器置于同一機房,最大限度避免網絡問題。
模型将其轉換成性能測試可量化的TPS。
資料分為基礎資料和業務資料兩部分,索引和SQL都會被測試到。
5.日志等級設定成warn,避免大量列印log對性能測試結果的影響。
6.屏蔽ESI緩存,模拟最壞的情況。
7.先單場景,後混合場景,確定每個性能瓶頸都得到調優。
8.拆分問題,隔離分析,定位性能瓶頸。
9.根據性能測試通過标準,來判斷被測性能點通過與否。
10.針對目前無法解決的性能瓶頸,錄入QC域進行跟蹤,并請專家進行風險評估。
壓力變化模型
a點:性能期望值
系統資源處于臨界點
c點:高于期望,拐點
d點:超過負載,系統崩潰
性能測試
a點到b點之間的系統性能,以性能預期目标為前提,對系統不斷施加壓力,驗證系統在資源可接受範圍内,是否能達到性能預期。
負載測試
b點的系統性能,對系統不斷地增加壓力或增加一定壓力下的持續時間,直到系統的某項或多項性能名額達到極限,例如某種資源已經達到飽和狀态等。
壓力測試
b點到d點之間,超過安全負載的情況下,對系統不斷施加壓力,是通過确定一個系統的瓶頸或不能接收使用者請求的性能點,來獲得系統能提供的最大服務級别的測試。
穩定性測試
軟體、網絡環境條件下,給系統加載一定業務壓力,使系統運作一段較長時間,以此檢測系統是否穩定,一般穩定性測試時間為n*12小時。
監控名額
性能測試通常需要監控的名額包括:
1.伺服器Linux(包括CPU、Memory、Load、I/O)。
2.資料庫:1.Mysql 2.Oracle(緩存命中、索引、單條SQL性能、資料庫線程數、資料池連接配接數)。
日志)。
4.網絡: 吞吐量、吞吐率。
5.應用: jvm記憶體、日志、Full GC頻率。
工具(LoadRunner):使用者執行情況、場景狀态、事務響應時間、TPS等。
7.測試機資源:CPU、Memory、網絡、磁盤空間。
監控工具
性能測試通常采用下列工具進行監控:
阿裡巴巴集團自主開發,嵌入到應用代碼中使用。
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