使用jmeter進行壓力測試與nginx連接數優化


案例訓練目標

  1. 學會使用jmeter工具
  2. 學會配置nginx連接數優化

包含技能點

  1. 使用jmeter做壓力測試
  2. 配置nginx的 並發連接數

環境要求

PC支持VT,4G內存以上;vmware虛擬機安裝有centos7和win7

 

案例子任務一、配置實驗環境

步驟1:在centos7虛擬機啟用docker容器,配置測試對象

 

  • #docker network ls //查看宿主機上的docker網絡類型種類,

 

 

  • 啟動容器APP1,設定地址為172.18.0.111,

 

docker run -d --privileged --net cluster --ip 172.18.0.111 --name APP1 php-apache /usr/sbin/init

  • 配置容器APP1,編輯phpinfo.php文件;

 

  • 啟動容器nginx1,設定地址為172.18.0.11,

 

docker run -d --privileged --net cluster --ip 172.18.0.11 -p 80:80 --name nginx1 nginx /usr/sbin/init

  • 配置容器nginx1,設置反向代理

          location / {

proxy_pass http://172.18.0.111;

}

  • 在主機瀏覽器訪問centos7地址,能夠訪問到APP1的phpinfo頁面,

步驟2:在win7虛擬機安裝jdk和jmeter,配置測試環境

  • 下載jdk_8.0.1310.11_64.exe到win7虛擬機
  • 安裝jdk_8.0,設置環境變量

設置3項屬性JAVA_HOME,PATH,CLASSPATH(大小寫無所謂),若已存在則點擊"編輯",不存在則點擊"新建"JAVA_HOME指明JDK安裝路徑,Path項下添加:;%JAVA_HOME%\bin; %JAVA_HOME%\jre\bin,注意用分號隔開,在CLASSPATH添加:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar

  • 打開命令行窗口, java -version 檢查java環境

  • 下載解壓運行jmeter,選擇語言為簡體中文

案例子任務二、使用jmeter進行壓力測試

步驟1:建立測試計划進行壓力測試

  • 編輯測試計划名稱,創建並配置線程組

  • 創建配置http請求

  • 添加運行結果監聽器

  • 運行測試計划,查看測試結果

步驟2:錄制測試腳本進行壓力測試

  • 編輯測試計划名稱,創建並配置線程組

  • 添加運行結果監聽器

  • 添加HTTP代理服務器並設置參數

 

在代理服務器下添加查看結果樹

 

 

啟動代理服務器

 

 

在瀏覽器設置代理服務器

 

 

使用瀏覽器訪問目標網站

 

 

在代理服務器下查看結果樹

 

  • 在線程組下查看http請求

  • 啟動線程組進行測試並查看結果

案例子任務三、使用ab進行壓力測試

[root@localhost ~]#ab -c 1000 -n 10000 http://192.168.152.11/index.html

Document Path:          /index.html.zh-cn.gb2312

//測試的頁面文檔

Document Length:        1018 bytes

//文檔大小

Concurrency Level:      1000

//並發數
Time taken for tests:   8.188731 seconds
//整個測試持續的時間
Complete requests:      1000
//完成的請求數量
Failed requests:        0
//失敗的請求數量
Write errors:           0
Total transferred:      1361581 bytes
//整個場景中的網絡傳輸量
HTML transferred:       1055666 bytes
//整個場景中的HTML內容傳輸量
Requests per second:    122.12 [#/sec] (mean)
//大家最關心的指標之一,相當於 LR 中的每秒事務數,后面括號中的 mean 表示這是一個平均值
Time per request:       8188.731 [ms] (mean)
//大家最關心的指標之二,相當於 LR 中的平均事務響應時間,后面括號中的 mean 表示這是一個平均值
Time per request:       8.189 [ms] (mean, across all concurrent requests)
//每個請求實際運行時間的平均值
Transfer rate:          162.30 [Kbytes/sec] received
//平均每秒網絡上的流量,可以幫助排除是否存在網絡流量過大導致響應時間延長的問題

[root@localhost ~]# ab -c 2000 -n 10000 http://192.168.152.11/index.html

案例子任務四、優化nginx連接數

步驟1:修改linux打開的文件數

  • 查看linux系統限制

  • 修改linux打開文件數限制

步驟2:調整nginx連接數

  • 查看nginx連接數

  • 修改nginx連接數

在主

ulimit -n 65535

 

 


免責聲明!

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



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