共计 510 个字符,预计需要花费 2 分钟才能阅读完成。
起因
生产环境的程序,在应用过程中,客户提到了性能问题,解决比较慢。我在原本想通过日志,和代码逻辑来判断为什么慢,后果因为日志较少,并没有定位出哪里导致的性能问题,所以应用了 JPorfiler 监控,顺便记录下排查过程。
服务器装置 JPorfiler
下载好对应的 linux 版本 jprofiler(我用的是 jprofiler_linux_10_1_5.tar.gz),并解压,如图所示凋谢监听端口。
本地装置 JPorfiler
下载和服务器版本统一的 windows 版本的 jprofiler,装置启动,连贯形式如下
排查记录
能够看到,sql 语句运行,第一个 sql,破费了 820 秒。我看了下 sql 语句,一下子就晓得哪里慢了。sql 语句就不贴出来了,简略形容下就是那个中央用到了批量插入,公司应用的数据库是 oracle,oracle 的批量插入,间接导致了硬解析问题,导致性能低下,大家能够自行去理解下 sql 的硬解析问题,有时候批量插入不肯定比 for 循环插入快。
正告
最初揭示下,千万别用 JPorfiler 间接连贯生产程序,我间接连的是生产,导致生产程序奔溃了半小时,血的教训,尽量用测试环境复现问题,之后用 JPorfiler 连贯测试环境测试。
正文完