面经 | 性能问题
一、概念问题
(一)性能测试中发现CPU占用过高应该如何分析?
- 查找进程
top查看进程占用资源情况
明显看出对应的java进程占用过高的CPU - 查找线程
使用top -H -p查看线程占用情况
查找java堆栈信息
将线程id转换成十六进制
printf % x 15664
3d30 - 然后在使用jstack查询线程的堆栈信息
语法:jstack | grep -a 进程id(十六进制)
jstack | grep -a 3d30
(二)如何确定系统的最大负载?
负载测试,逐步加大用户数,观察系统性能,直达关键性能指标达到拐点,例如响应时间突然变大,这个时候就是最大负载。