web系統整體性能測試

一、性能測試概要

什麼是性能測試

  • 性能測試就是通過技術的手段模擬大量用戶同時訪問被測應用,觀察、記錄和分析系統的各項性能指標的過程。
  • 性能測試的目標是評估系統的性能瓶頸,預測系統的最大用戶負載能力。

性能測試的兩個關鍵點

  • 模擬大量併發用戶
  • 監控系統負載參數分析系統瓶頸

性能指標

  • 平均響應時間( TTLB , Time to laster byte )

    • 平均每個請求從發送到接收響應的時間
      在這裏插入圖片描述
  • 合理的平均響應時間

    • 2/5/10原則
    • 在2秒之內給客戶響應被用戶認爲是“非常有吸引力”的用
      戶體驗。在5秒之內響應客戶被認爲“比較不錯”的用戶體驗,在10秒內給用戶響應被認爲“糟糕”的用戶體驗。如果超過10秒還沒有得到響應,那麼大多用戶會認爲這次請求是失敗的。
  • 平均響應時間的業務影響

    • 根據2008年Aberdeen Group的研究報告,對於Web網站, 1秒的頁面加載延遲相當於少了11%的PV ( pageview ) , 相當於降低了16%的顧客滿意度。
    • Compuware公司分析了超過150個網站和150萬個瀏覽頁面,發現頁面響應時間從2秒增長到10秒,會導致38%的頁面瀏覽放棄率。

系統資源類

  • CPU:CPU的佔用率
  • 內存:內存的佔用率,換頁數等
  • I/O:讀寫請求數、讀寫量等
  • 帶寬:進站出站帶寬佔用率

爲什麼要進行性能測試

  • 能夠有效評估系統的性能指標,用於系統的性能評估
  • 能夠識別系統的性能瓶頸,協助性能調優
  • 能夠指導突發流量承載方案的制定
  • 能夠用於系統運維成本的預算

性能測試的一般分類

  • 負載測試( Load Test ):爲了驗證系統設計符合正常業務負載情況下系統性能表現的測試
  • 壓力測試( Stress Test ):爲了驗證系統在極端負載情況下的性能表現的測試

開發人員進行的性能測試更加關注在一定負 載情況下各個系統資源的佔用率,從而找到內存泄露、連接泄露和系統的性能瓶頸。

二、性能測試相關工具介紹

2.1 top

顯示、排序,過濾,

top -ab -n 1

2.2 性能統計工具sysstat的安裝配置

http://lovesoo.org/linux-sar-command-detailed.html

統計系統的各種資源佔用情況

yum list sysstat
yum install -y sysstat
cat /etc/cron.d/sysstat

-A:所有報告的總和
-u:輸出 CPU 使用情況的統計信息
-v:輸出inode、文件和其他內核表的統計信息
-d:輸出每一個塊設備的活動信息
-r:輸出 內存 和交換空間的統計信息
-b:顯示 I/O 和傳送速率的統計信息
-a:文件讀寫情況
-c:輸出進程統計信息,每秒創建的進程數
-R:輸出內存頁面的統計信息
-y:終端設備活動情況
-w:輸出系統交換活動信息

2.3 sysstat常用命令之cpu監控

2.4 sysstat常用命令之內存監控

2.5 sysstat常用命令之io監控

sar -b -f sa08

tps:每秒鐘物理設備的I/0請求次數
rtps: 每秒鐘從物理設備讀入的請求次數
wtps: 每秒鐘向物理設備寫入的請求次數
bread/s: 每秒鐘從物理設備讀入的數據量,單位爲塊/s
bwrtn/s: 每秒鐘向物理設備寫入的數據量,單位爲塊/s

sar -d -f sa08

2.6 sysstat常用命令之network監控

sar -n DEV -f sa25

DEV顯示網絡接口信息,EDEV顯示關於網絡錯誤的統計數據,NFS統計活動的NFS客戶端的信息,NFSD統計NFS服務器的信息,SOCK顯示套接字信息,ALL顯示所有5個開關。它們可以單獨或者一起使用。

rxpck/s: 每秒鐘接收的數據包
txpck/s: 每秒鐘發送的數據包
rxbyt/s: 每秒鐘接收的字節數
txbyt/s: 每秒鐘發送的字節數
rxcmp/s: 每秒鐘接收的壓縮數據包
txcmp/s: 每秒鐘發送的壓縮數據包
rxmcst/s: 每秒鐘接收的多播數據包

2.7 評估磁盤讀寫性能極限 fio

評估磁盤讀寫性能極限

yum install -y fio

fio -filename=/data/test -direct=1 -iodepth 1 -thread -rw=randrw -ioengine=psync -bs=16k -size 2G -numjobs=10 -runtime=30 -group_reporting -name=mytest13

2.8 進程隊列長度和平均負載狀態監控

sar -q 10 3

runq-sz:運行隊列的長度(等待運行的進程數)
plist-sz:進程列表中進程(processes)和線程(threads)的數量
ldavg-1:最後1分鐘的系統平均負載(System load average)
ldavg-5:過去5分鐘的系統平均負載
ldavg-15:過去15分鐘的系統平均負載

三、Jmeter進行性能測試

3.1 JMeter介紹及特性

  • Apache組織開發的性能測試工具
  • 用於模擬大量用戶的併發訪問
  • 最大的優點是完全開源

特性:

  • Web- HTTP, HTTPS
  • SOAP
  • FTP
  • LDAP
  • Message-oriented middleware (MOM) via JMS
  • MongoDB (NoSQL)
  • TCP
  • Others

3.2 jmeter 目錄結構

3.3 JMeter 基本功能介紹

3.4 使用jmeter對性能測試腳本進行錄製和回放

3.5 測試腳本參數化

3.6 用PostProcessor獲取響應中的關鍵數據

3.7 使用BeanShellAssertion判斷

3.8 用BSFAssertion判斷響應是否正確

3.9 JMeter中的其他斷言方法

3.10 JMeter中模擬用戶的等待行爲

3.11 執行性能測試並在執行過程中監控性能

四、產品性能分析

4.1 監控mysql 慢查詢

4.2 實用sysstat 分析系統硬件性能瓶頸

五、Jmeter進階

5.1 使用session支持

5.2 多用戶組實現多場景

5.3 通過beanShell進行java擴展

六、其他性能監控軟件介紹

6.1 Nmon

  • 一個類似TOP但是顯示功能更加豐富的工具

6.2 Nagios

Nagios是一款開源的免費網絡監視工具,能有效監控
Windows、Linux和Unix的主機狀態,交換機路由器等網絡設置,打印機等。在系統或服務狀態異常時發出郵件或短信報警第-時間通知網站運維人員,在狀態恢復後發出正常的郵件或短信通知。(更偏重運維)

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