https://github.com/javastacks/spring-boot-best-practice分析过程
这里暂时先忽略 CPU 占用率高的问题首先平均响应时间这么慢,肯定是有阻塞。先确定阻塞位置。重点检查几处:
https://github.com/javastacks/spring-boot-best-practice其实也不是没有收获,至少在减少服务线程数量后还是有一定收获的。另外,已经关注到了另外一个点:CPU使用率,减少了线程数量后,CPU的使用率并没有明显的下降,这里是很有问题的,当时认为CPU的使用率主要与开启的线程数量有关,之前线程多,CPU使用率较高可以理解。但是,在砍掉了一大半的线程后,依然居高不下这就很奇怪了。
https://github.com/javastacks/spring-boot-best-practice通过堆栈信息很快定位到执行位置:
最终结果:
排查涉及的命令如下:查询服务进程CPU情况: top –Hp pid
为什么createBean对性能影响这么大?如果影响这么大,Spring为什么还要有多例?
System.currentTimeMillis并发度多少才会对性能产生影响,影响有多大?很多公司(包括大厂)在业务代码中,还是会频繁的使用System.currentTimeMillis获取时间戳。比如:时间字段赋值场景。所以,性能影响肯定会有,但是影响的门槛是不是很高。
继续学习性能优化知识
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |