性能优化之druid连接池监控

正在被云化干的一头雾水的时候,测试小哥说:“63环境有个任务出问题了,处理一下”。

咱是出了名的老好人,来吧,看是啥问题!

后台日志显示连接池不够用了,无非两种情况:

1.数据库操作多

2.单次数据库操作时间长

对于第一种情况,咱们只能增加最大连接数,或者做批量操作,例如:循环插入改为批量插入,一般有经验的开发选手都不会循环插入。

咱们着重看第二种情况:单次数据库操作时间长

怎么确定是哪个数据库操作时间长呢?怎么定位?我给老铁们两个方案,一种是mysql的慢sql日志,这是我们通常用的方法。 第二种是Druid监控,(我是阿里中间件的粉丝),今天就着重来说一下什么是Druid监控,直接上代码!!!

//在druid连接池配置处开启慢sql监控
druidDataSource.setFilters("stat,wall,log4j");
//添加druid过滤器Bean
@Bean
public FilterRegistrationBean statFilter(){
    FilterRegistrationBean reg = new FilterRegistrationBean();
    reg.addUrlPatterns("/*");
    reg.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
}

应用启动脚本里配置jmx,不知道jmx的老铁自行百度,学一下,好多java自带工具都能用到。

我们需要用到tomcat,打开webapps\ROOT\WEB-INF\web.xml,添加jmx配置

性能优化之druid连接池监控_第1张图片

然后双击tomcat的bin/startup.bat启动。

打开浏览器,访问127.0.0.1:8080/druid,账号密码,我配置的admin,admin

关于页面上的信息,我直接说sql监控,其他地方还请老铁们自行学习

 

看见这张图的时候,我是懵逼的,尤其是序号18,19,20,21,22,23,使用量那么大,还那么慢,所以,标红的sql一个一个优化吧,优化示例:

update table set is_delete=1 where task_id = 80067 这个sql不看执行计划都知道,task_id字段上没有添加索引,去数据库看了一下,果然没加索引。

用Druid监控来查询慢sql的步骤就这些啦!

 

你可能感兴趣的:(性能优化,mysql,java)