起因
生产环境的程序,在应用过程中,客户提到了性能问题,解决比较慢。我在原本想通过日志,和代码逻辑来判断为什么慢,后果因为日志较少,并没有定位出哪里导致的性能问题,所以应用了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连贯测试环境测试。
发表回复