性能问题排查使用JPorfiler
起因
生产环境的程序,在使用过程中,客户提到了性能问题,处理比较慢。我在本来想通过日志,和代码逻辑来判断为什么慢,结果因为日志较少,并没有定位出哪里导致的性能问题,所以使用了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直接连接生产程序,我直接连的是生产,导致生产程序奔溃了半小时,血的教训,尽量用测试环境复现问题,之后用JPorfiler连接测试环境测试。
推荐阅读
- parallels|parallels desktop 解决网络初始化失败问题
- jhipster|jhipster 升级无效问题
- “精神病患者”的角度问题
- 解决SpringBoot引用别的模块无法注入的问题
- Hive常见问题汇总
- 姚老师互动问答会|姚老师互动问答会 # 问题001(如何更有智慧的和身边人分享金刚智慧())
- 【Hadoop踩雷】Mac下安装Hadoop3以及Java版本问题
- 【教育故事】|【教育故事】 一个“问题学生”的蜕变
- 蓝桥杯试题
- 记录iOS生成分享图片的一些问题,根据UIView生成固定尺寸的分享图片