一、问题
100/200/300并发用户,TPS波动太大
二、问题定位
使用命令:top -H -p ${PID}查看进程的线程占用资源情况,发现Tid为4690的线程cpu占用较高,如下图:
使用命令:printf “%x\n” ${Tid}将线程对应PID转为 16进制数(Tid16);
使用命令:jstack PID | grep -A 30 "nid=0x${Tid16}"查看线程的堆栈信息,并让研发分析代码,如下图:
三、调优前后测试结果对比
调优前结果:
300并发压测1小时TPS曲线图:
调优后结果:
300并发压测1小时TPS曲线图: