【性能測試實戰:jmeter+k8s+微服務+skywalking+efk】系列之:性能測試執行、監控、分析、調優等


說明:

本文是基於虛擬機演示的,資源有限

 

skywalking中拓撲圖

kubectl get po -A -owide

 

 

測試執行:單場景

查詢禮品

jmeter -n -t gift.jmx -l res.jtl -e -o res/

通過下圖可以看到,tps>50

 

壓測結果

 

兌換禮品

見下方性能問題2

 

查詢訂單

見下方性能問題1

 

測試執行:混合場景

12線程 

 

 

測試執行:穩定性場景

說明:下圖大概00:25后tps上升,是因為我把服務器上無關的服務停了

 

性能問題1:查詢訂單慢sql

壓測執行

jmeter -n -t gift.jmx -l res.jtl -e -o res/

通過下圖可以看到,tps在20左右

 

監控

grafana結果

 

k8s全局監控

 

mysql監控,可以看到有慢查詢

 

 

skywalking鏈路追蹤

可以選擇持續時間和時間范圍

 

查看跨度信息,可以看到sql

 

也可以拆解時間的方式

先進入拓撲圖頁面,最下面選擇時間范圍

 

 

分析

源碼

@Select("select o.id,o.order_number as orderNumber,o.order_product_name as orderProductName,o.order_price as orderPrice,o.count,o.buy_date as buyDate from orders o where order_number = #{orderNumber}")
    Order findByProductId(@Param("orderNumber") String orderNumber);

 

執行計划:explain select o.id,o.order_number,o.order_product_name,o.order_price,o.count,o.buy_date from orders o where o.order_number = 'n305udx6jqu2pjxt';

掃全表

 

調優

create unique index index_order_number on orders(order_number);

 

回歸壓測

jmeter -n -t gift.jmx -l res.jtl -e -o res/

 

 

mysql監控中,沒看到慢查詢了

 

鏈路追蹤

 

性能問題2:兌換禮品網關超時

壓測執行

jmeter -n -t gift.jmx -l res.jtl -e -o res/

 

監控

k8s

 

jmeter

 

查看html報告

 

 

 

 

通過gui方式壓測(這里只是為了直觀看到錯誤信息,並不推薦gui方式壓測),可以看到是網關超時

 

分析

進入ingress:kubectl exec -it -n ingress-nginx po/ingress-nginx-controller-qc299 -- sh

搜索:gateway

到## start server gateway.gifts.com下的location下

如果http請求超過了60秒再返回,連接就會被nginx中斷,就會報504的錯誤:gateway time-out

 

調優

重新設置nginx超時時間,將超時時間設置為3600,就是一個小時,這個值可以靈活設置,就是不讓他在默認60秒斷開鏈接。

在gateway的ingress中新增

vim gateway-skywalking.yaml

annotations:           #注解信息
  kubernetes.io/ingress.class: "nginx"
  nginx.ingress.kubernetes.io/proxy-read-timeout: "3600"

 

kubectl replace -f gateway-skywalking.yaml

進入ingress:kubectl exec -it -n ingress-nginx po/ingress-nginx-controller-qc299 -- sh

可以看到,配置已經動態更新

 

回歸壓測

 

磁盤

 

性能問題3:鎖使用不合理

待更新...

 

 

 

更多性能問題

詳見:https://www.cnblogs.com/uncleyong/p/15793624.html

 

【性能項目實戰:jmeter+k8s+微服務+skywalking+efk】匯總

詳見:https://www.cnblogs.com/uncleyong/p/15475614.html

 


免責聲明!

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



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