性能测试档板mockServer cpu 高定位过程记录
1、top 找出CPU搞得进程ID 这里不用找了已知mockserver的PID=13452
jstack 13452 >> 13452.txt
2、获取线程信息,并找到占用CPU高的线程 (13470、 13471)
ps -mp 13452 -o THREAD,tid,time
3、将需要的线程ID转换为16进制格式(349e/349f)
printf "%x\n" tid
4、打印线程的堆栈信息
jstack pid |grep tid -A 30
耗时发生在:
C2 CompilerThread1
C2 CompilerThread0
------2018-12-13
书接上文,昨天折腾了一圈没解决问题,今天突然开窍将jmeter部署到某服务器上而不是在本地测试,前面的各种net/socket Exception都没了,只剩下并发量上去的时候操作redis read timed out (此时查看redis监控的确有抖动不可用,在redis监控没抖动的时候出
redis.clients.jedis.exceptions.JedisConnectionException:Could not get a resource from the pool 的异常,有幸参考到以下两篇文章问题初步得到解决(1000并发运行50分钟未出错)。
https://blog.csdn.net/haoluojie/article/details/78765202
http://www.cnblogs.com/qlong8807/p/5149007.html
-----2018-12-14