0
点赞
收藏
分享

微信扫一扫

请求用时长分析

zibianqu 2022-03-12 阅读 37
java

最近发现项目里面的一个请求,常规情况下,不到1秒就能够处理完毕,偶尔有几十秒,上百秒的情况。
通过观察数据库的提交记录,发现耗时几十秒的数据,都会在同已时刻提交,才开始怀疑是数据库io的性能问题,逐步进行io测试,平均的读写值才2千多,确实很低。经过商量,更换了ssd的硬盘,在测试能够达到8万多。好的,按照这样的标准上线,情况还是沒有好转。
进一步分析后台应用的日志,发现有很多记录耗时的日志,
在这里插入图片描述
看其原代码,一个请求要获取12次时间,使用的是System.nanoTime()来获取时间,一头一尾进行计算。经过查阅资料,发现System.nanoTime()在高并发下确实存在问题。然后项目上把这段逻辑注释掉后,重新发布验证,异常消失。
总结:谨慎使用System.nanoTime()或者System.currentTimeMillis(),特别是在高并发下

举报

相关推荐

0 条评论