nginx https性能測試結果


nginx https 性能測試結果

概述

  • 本次測試主要是為了測試nginx 在使用https單向認證的性能瓶頸,通過調整nginx物理機的cpu大小來確定nginx能支持的https連接數量

測試方法

  • 采用單機jmeter確定單台客戶端能支持的https連接tps
  • 動態調整nginx物理機cpu確定該配置下nginx能支持的https連接tps
  • 采用jmeter集群提高客戶端並發能力,確認nginx最大的支持數量
  • nginx ssl套件優先選擇ECDHE-RSA-AES256-GCM384
  • 切換對稱加密算法 對比不同算法之間的性能優劣
  • 切換雙向認證,對比單向與雙向的性能差距

測試結果

  1. windows客戶端4核16g機器 https連接 tps最高為400左右
  2. linux客戶端4核8g機器 https連接 tps最高為550左右
  3. linux客戶端8核8g機器 https連接 tps最高為800左右
  4. 客戶端https連接性能與內存無關
  5. nginx 1核2g可支撐tps為470左右
  6. nginx 2核4g可支撐tps為950左右
  7. nginx 4核8g可支撐tps為1800左右
  8. 對稱加密算法對tps有一定影響,aes256-sha384比aes128-sha256有優勢
  9. 雙向認證對客戶端及服務器均有一定的影響,開啟雙向認證客戶端和服務器tps均下降200左右
  10. nginx 8核時可提供更高的性能,礙於客戶端機器太少,暫未測試,根據開源測試結果,在cpu不超過24核之前,呈指數增長,超過24核之后,基本無提升,達到10000+tps

使用windows電腦測試 100個線程 循環100次 ramp-up 5s nginx與應用共用一台機器 使用nginx轉發請求

nginx物理機配置 worker數量 nginxcpu占用率 請求數量 平均響應時間 tps 結果分析
4核8g 1 77% 10000 未記錄 366.6 客戶端https性能限制,worker限制為1不影響測試結果
4核8g 1 82% 10000 未記錄 391 客戶端https性能限制
2核8g 1 未記錄 10000 167 370 客戶端https性能限制
2核8g 1 未記錄 10000 166 378 客戶端https性能限制
1核8g 1 未記錄 10000 177 355 客戶端https性能限制
1核8g 1 未記錄 10000 158 388 客戶端https性能限制
  • 根據以上測試結果,可以發現,當使用單台客戶端機器時,主要瓶頸在客戶端的cpu限制上,調整nginx機器配置對測試結果不產生影響

使用windows電腦測試 200個線程 循環100次 ramp-up 5s nginx直接返回數據

nginx物理機配置 worker數量 nginxcpu占用率 請求數量 平均響應時間 tps 結果分析
1核4g auto:1 80% 20000 200 399 客戶端https性能限制
2核4g auto:2 44% 20000 208 389 客戶端https性能限制
2核4g auto:2 44% 20000 415 390 客戶端https性能限制
2核8g auto:2 未記錄 20000 415 390 客戶端https性能限制
4核8g auto:4 未記錄 20000 196 403 客戶端https性能限制
8核8g auto:8 未記錄 20000 197 404 客戶端https性能限制
  • 根據以上測試結果顯示,應用處理的時間會對平均響應時間和tps有較小的影響,目前瓶頸還在客戶端上

單客戶端能達到tps上限 采用4核8g配置的nginx

機器編號 客戶端配置 tps 備注
88 8核8g 750 該機器上還運行了一些其他應用
90 4核8g 550
91 8核4g 800
  • 測試結果顯示,客戶端https性能與內存無關,與cpu有正相關關系,非線性增長

測試物理機cpu對nginx https性能的影響

nginx物理機配置 worker數量 nginx cpu占用率 客戶端集群數量 請求數量 平均響應時間 tps 結果分析
1核2g auto:1 99.7 2 40000 657 476 nginx機器cpu瓶頸出現
2核4g auto:2 97~99 2 40000 315 959 nginx機器cpu瓶頸出現
4核4g auto:4 60 2 40000 191 1303 客戶端機器cpu瓶頸出現
4核4g auto:4 90% 3 60000 275 1702 客戶端瓶頸出現,nginx機器接近極限
4核8g auto:4 90% 3 60000 326 1703 客戶端瓶頸出現,nginx機器接近極限
4核8g auto:4 94% 3 60000 309 1753 90機器升級至8核8g
4核8g auto:4 90% 3 60000 291 1577 切換加密算法至ECDHE-RSA-AES128-SHA256,90機器升級至8核8g
4核8g auto:4 99% 4 80000 344 1780 增加客戶端機器 達到nginx機器瓶頸

雙向認證測試

  • 單機基准測試
機器編號 客戶端配置 tps 備注
88 8核8g 600 該機器上還運行了一些其他應用
90 8核8g 580
91 8核4g 580
  • 雙向認證nginx性能測試
nginx物理機配置 worker數量 nginx cpu占用率 客戶端集群數量 請求數量 平均響應時間 tps 結果分析
4核8g auto:4 90 3 60000 319 1453
4核8g auto:4 99 4 80000 354 1447

附錄

  1. 1核2g nginx tps 510左右 nginx所在機器cpu利用率達到99.7% 2客戶端
    HTTP請求 40000 657 6 32093 1527.0895952522726 0.0 476.9854519437157 165.82697352730742 85.24251729072263 356.0

  2. 2核4g nginx tps 1000+ nginx所在機器 2worker cpu利用率達到97%,短暫沖上99% 2客戶端
    HTTP請求 40000 315 5 7319 482.0965055306452 0.0 959.6698735634942 333.63522948105856 171.50350279503851 356.0

  3. 4核4g nginx tps 1300+ nginx所在機器 2worker cpu 利用率為60%左右 2客戶端
    HTTP請求 16402 191 5 3970 282.5101425973831 0.0 1303.5047286020822 453.1715658030676 232.95055208416116 356.0

  4. 4核4g nginx tps 1700+ nginx所在機器 4worker cpu利用率 90% 3客戶端
    HTTP請求 41603 275 6 15148 517.715623068677 0.0 1702.7381001105064 591.9675426165433 304.29792218771746 356.0

  5. 4核8g nginx nginx所在機器 4worker cpu利用率 90% 3客戶端
    HTTP請求 31303 326 6 7255 486.0650435449134 0.0 1703.9355505960482 592.3838437619074 304.51191968659845 356.0tps 1600+

  6. 4核8g nginx 切換對稱加密算法 ecdhe-rsa-aes128-sha256 cpu利用率 90% 3客戶端
    HTTP請求 60000 291 7 7499 494.80794128182254 0.0 1577.079773951899 548.2816401629649 281.841404915232 356.0

  7. 4核8g nginx 切換90上機器至8核8g cpu利用率94% 算法選擇aes256-sha384
    HTTP請求 56403 309 6 7528 592.5250471101348 0.0 1753.4429695029066 609.5954073662449 313.35943693264835 356.0

  8. 4核8g nginx 開啟雙向認證 90機器8核 cpu利用率90%
    HTTP請求 25903 319 8 7694 525.7399447768057 0.0 1453.3467990798406 505.2650981176008 259.72896897618244 356.0

nginx和應用部署在同一台機器上

  1. 使用4核8g tps 366.6 cpu占用77% 其他的被應用占了 391 82%

  2. 使用2核8g
    HTTP請求 10000 167 10 397 77.17840648620567 0.0 370.9749220952664 135.13051361477963 66.29727611663452 373.0
    HTTP請求 10000 166 11 874 81.67810223823763 0.0 378.2577448273253 137.7833386919847 67.59879619472709 373.0

  3. 使用1核8g
    HTTP請求 10000 177 10 408 82.3925800284832 0.0 355.96055956999965 129.66141476524402 63.614045313779236 373.0
    HTTP請求 10000 158 10 375 73.55565341909484 0.0 388.6966999650173 141.58580965522603 69.46435165390446 373.0

直接使用nginx返回數據

  1. 使用1核4g cpu占用率80%
    HTTP請求 20000 200 10 449 71.28450955360147 0.0 399.2972368631209 138.81818000319439 71.35878354096789 356.0
  2. 使用2核4g 自動work_processor=2 45%+44%
    HTTP請求 20000 208 9 472 64.15829126706855 0.0 389.7343960091198 135.49359861254555 69.64979928678605 356.0
    HTTP請求 20000 415 10 791 107.92393697636085 0.0 390.0840631156014 135.6151625675333 69.7122886231983 356.0
  3. 使用2核8g 49+46
    HTTP請求 20000 415 10 791 107.92393697636085 0.0 390.0840631156014 135.6151625675333 69.7122886231983 356.0
  4. 使用4核8g 4 worker
    HTTP請求 20000 196 10 527 61.96279827759556 0.0 403.92616229753196 140.42745486125136 72.1860231449691 356.0
    HTTP請求 20000 428 10 852 110.26393194131975 0.0 380.04028427013264 132.1233800782883 67.91735548968191 356.0
  5. 使用8核8g
    HTTP請求 20000 197 10 435 58.30088281988094 0.0 404.5307443365696 140.63764158576052 72.29406856796116 356.0


免責聲明!

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



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