Program tuning - Druid和Linux配合优化数据库连接池配置

配置步骤

1. 添加依赖

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>1.1.20</version>
</dependency>

2. 添加配置

spring:
  datasource:
    druid:
      webStatFilter:
        enabled: true
        url-pattern: /*
        exclusions: "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*"
      statViewServlet:
        allow:
        enabled: true
        url-pattern: /druid/*
        login-password: root
        login-username: root
      filter:
        stat:
          enabled: true
          # 慢SQL记录
          log-slow-sql: true
          slow-sql-millis: 1000
          merge-sql: true
        wall:
          config:
            multi-statement-allow: true
      keep-alive: true

3. 启动监控界面

  1. 启动项目
  2. 浏览器输入
http://主机ip:项目端口/druid/login.html

在这里插入图片描述

  1. 账号密码是第2步yml配置的login-usernamelogin-password
    在这里插入图片描述

常见问题

输入地址之后,浏览器直接打印html代码,而不是登录框

可能是代码中使用了@WebFilter(urlPatterns = "*")过滤器,并且,其中的urlPatterns参数是*,程序就会拦住/druid/login.html并输出文本

刷新页面不能重新加载数据

需要在地址栏点击回车重新访问,刷新F5没有效果

调优步骤

1. 开始压测

使用Jmeter开始压测

2. 监控线程池状态

数据库连接配置如下:

spring.datasource.druid.initialSize = 5
spring.datasource.druid.minIdle = 5
spring.datasource.druid.maxActive = 20

在这里插入图片描述

3. 查看服务器状态

查到压测目标服务的PID,运用下面的指令获取与数据库连接的闲置线程数:

netstat -anpt|grep 3306|grep TIME_WAIT |wc -l

结论

  1. 根据截图中的活跃线程数以及服务器的闲置线程数量来得出spring.datasource.druid.maxActive最优配置。
  2. 建议spring.datasource.druid.initialSizespring.datasource.druid.minIdle配置相同,防止服务频繁向操作系统请求线程,影响性能。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值