web項目接口性能測試與調優

前言

在對一些web項目的接口進行性能測試過程中,會需要開發者掌握一些概念,例如性能測試,到底要測試什麼?常見的測試指標有哪些?
這裏分享一個案例。

  1. 案例:有一個接口,需要對上傳文件進行分析,流程是上傳一個zip文件,解壓後進行校驗,分析處理後,對文件進行簽名,同時返回前也會驗證簽名一次,再進行zip壓縮輸出,返回到平臺,有幾個重要參數,例如,文件摘要值、對文件操作的算法。
  2. 這個案例看完後,從開發的角度上看,我們可能會思考,哪一些步驟會出現哪一些瓶頸,哪一個步驟需要採用什麼角度來進行優化?簽名所用到的算法、處理分析算法的調優、上傳文件與下載文件的網絡傳輸、zip的壓縮與解壓,是否可以採用異步的方式、JVM調優、有那些對象不需要每次都加載…
  3. 從性能測試的角度上看,需要測試什麼呢?吞吐量、一次請求的響應時間、併發用戶數、還有資源使用率,其中資源使用率,例如有CPU的使用情況(算法處理與常規運算),內存使用率(保證足夠大的空間能夠對單個文件進行處理),磁盤IO的處理(文件讀取與寫入)

資源使用命令

CPU佔用率

vmstat 3
# 查看cpu最後一項,記錄us、sy、id的數據值
# us :用戶進程消耗的CPU時間百分比
# sy : 內核進程消耗CPU時間百分比
# id : CPU處在空閒狀態的時間百分比
# us+sy參考值爲80%,如果大於80%,說明可能存在CPU資源不足的情況
# 綜上所述,CPU性能評估中重點注意r、us、sy和id列的值。

vmstat查看CPU佔用率

或者採用top命令,可以觀察%CPU選項,輸入數字1可進行排序

top查看CPU佔用率

內存使用率

top
# 控制檯上實時監控,查看Mem中從測試開始到測試各個階段使用的內存有多大,MEM佔比有多少,這裏可以輸入字母m來切換顯示模式

free
# 不會實時監控,只測試一次

top查看內存使用率

free查看內存使用率

磁盤I/O

vmstat 3
# bi : 從塊設備讀入數據的總量,即讀磁盤,單位kB/s
# bo : 寫入到塊設備的數據總量,即寫磁盤,單位kB/s

vmstat 查看磁盤IO變化

使用iostat -d -x -k 1 2獲取磁盤IO的數據變化情況

iostat 查看磁盤IO變化

網絡I/O

# eno1 爲使用的端口
dstat -t -clmnsyr --tcp --net-packets -N eno1

dstat 查看網絡IO變化

未完待續,持續更新


性能測試的Jdk工具

JMX的使用

配置JAVA或者是web容器裏的JAVA_OPTS類似的參數,指定JMX的

Jstat的使用

發佈了16 篇原創文章 · 獲贊 3 · 訪問量 4995
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章