实际生产环境JVM性能优化案例分析

本文介绍了使用Apache JMeter进行性能测试,并分享了针对CPU占用过高问题的排查方法,包括使用top命令和jstack分析。同时,文章详细探讨了日均百万级订单交易系统的JVM参数配置,包括订单对象大小估算和内存管理策略。
摘要由CSDN通过智能技术生成

目录

1. 性能测试工具-Apache JMeter

1.1 JMeter的基本使用流程

2.性能优化案例

2.1 CPU占用很高排查方案

2.1.1 模拟CPU占用高的代码实现

2.1.2  通过top命令查看,可以发现PID为2100的进程占用CPU较高

2.1.3  解决问题的步骤如下所示

2.1.4 打开jstack.log文件,查找刚刚转换完的十六进制PID是否存在

2.2  日均百万级订单交易系统设置JVM参数

2.2.1 订单大小理论值计算

2.2.2 实际交易场景每秒产生订单对象大小

2.2.3 内存分配和内存回收频率

2.2.4 JVM 参数设置流程

1. 性能测试工具-Apache JMeter

1.1 JMeter的基本使用流程

(1)启动JMeter后一般会默认生成一个测试计划。

(2)在测试计划下添加线程组。线程组有以下几种重要的参数。

   a. 线程数:虚拟用户数,用于并发测试。
   b. Ramp-Up时间(秒):这个参数表示准备时长,即设置的虚拟用户数需要多长时间全部启动。如果线程数为10,准备时长为2,那么需要2秒启动10个线程,也就是每秒启动5个线程。
   c.循环次数:每个线程发送请求的次数。如果线程数为10,循环次数为1000,那么每个线程发送1000次请求。总请求数为10×1000=10000。如果勾选了“永远”,那么所有线程会一直发送请求,直到选择停止运行脚本,

(3)新增HTTP采样器。

(4)添加监听器。

聚合报告中各个指标详解如下。
     a. Label:每个JMeter的元素(例如HTTP Request)都有一个Name属性,这里显示的就是Name属性的值。
     b. #Samples:这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100。
     c. Average:平均响应时间。默认情况下是单个请求的平均响应时间(ms),当使用Transaction Controller时,以Transaction为单位显示平均响应时间。
     d. Median:中位数,也就是50%用户的响应时间。
     e. 90% Line:90%用户的响应时间。
     f. Min:最小响应时间。
     g. Max:最大响应时间。
     h. Error%:错误率,即错误请求数/请求总数。
     i.throughput:吞吐量。默认情况下表示每秒完成的请求数(Request per Second)。
     j. KB/Sec:每秒从服务器端接收到的数据量。

2.性能优化案例

2.1 CPU占用很高排查方案
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yongge

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值