【性能测试实战: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