zoukankan      html  css  js  c++  java
  • Tomcat 连接池调优

    性能较好的Tomcat 配置文件内容

    <Context>
    <Resource name="jdbc/pgsql" type="javax.sql.DataSource" driverClassName="org.postgresql.Driver"
    url="jdbc:postgresql://10.14.196.190:5432/foo"
    username="sdbadmin"
    password="sdbadmin"
    factory="org.apache.tomcat.jdbc.pool..DataSourceFactory"
    maxActive="600"
    maxIdle="600"
    minIdle="600"
    initialSize="400"
    timeBetweenEvictionRunsMillis="30000"
    minEvictableIdleTimeMillis="1800000"
    removeAbandoned="true"
    removeAbandonedTimeout="180"
    testOnBorrow="true"
    maxWait="300000"
    logAbandoned="true"
    testOnReturn="false"
    validationQuery="SELECT 1"
    /> 
    
    <ResourceLink global="jdbc/pgsql"
    name="jdbc/pgsqlDB"
    type="javax.sql.DataSource"
    />
    
    </Context>

    Resource 重要参数说明:
    factory 使用哪种连接池的库
    maxActive 连接池的最大连接上限
    maxIdle 最大空闲连接数,空闲的连接如果超过 minEvictableIdleTimeMillis 参数设置的值,空闲连接将被释放
    minIdle 最小空闲连接数
    initialSize 初始化连接数
    timeBetweenEvictionRunsMillis 多长时间去检查一次连接池的空闲连接,并且发现空闲连接的空闲时间超过了 minEvictableIdleTimeMillis 设置时间后,直接将空闲连接断开,直到空闲连接数为 minIdle 数为止
    minEvictableIdleTimeMillis 这个参数要和 timeBetweenEvictionRunsMillis 参数混合使用
    removeAbandoned 是否清理超过 removeAbandonedTimeout 设置时间的活动连接
    removeAbandonedTimeout 活动连接的最大空闲时间
    testOnBorrow 从连接池中借出连接前,是否对该连接进行正确性校验,连接正常才会出池,如果连接已经失效,将会把失效连接清除,并且重新申请新的连接。该参数可以保证成功借出的连接都是处于活动状态。该参数必须要和 validationQuery 参数配合使用,如果 validationQuery 参数为空字符串,该参数将不生效。
    maxWait 连接池用完后,申请新连接的等待时间
    logAbandoned 连接池回收空闲的活动连接时是否打印日志
    testOnReturn 将连接返回连接池时,是否对该连接进行正确性校验,如果连接失效,将清除该连接,如果连接正常,则回池。该参数必须和 validationQuery 参数配合使用。默认值为 false
    validationQuery 探测连接健壮性的模板SQL

    老的tomcat 连接池的配置,性能不好

    <Context>
    <Resource name="jdbc/pgsql" type="javax.sql.DataSource" driverClassName="org.postgresql.Driver"
    url="jdbc:postgresql://10.14.196.190:5432/foo"
    username="sdbadmin"
    password="sdbadmin"
    factory="org.apache.tomcat.jdbc.pool..DataSourceFactory"
    maxActive="1000"
    maxIdle="-1"
    minIdle="600"
    initialSize="500"
    timeBetweenEvictionRunsMillis="0"
    removeAbandoned="true"
    removeAbandonedTimeout="1000"
    /> 
    
    <ResourceLink global="jdbc/pgsql"
    name="jdbc/pgsqlDB"
    type="javax.sql.DataSource"
    />
    </Context>

    该配置的问题
    maxIdle 设置-1 是错误,tomcat 会报告该参数大于maxActive ,然后设置为与 maxActive 相同的值
    timeBetweenEvictionRunsMillis 由于没有设置 validationQuery 参数,所以不生效
    removeAbandoned 由于没有设置 validationQuery 参数,所以不生效
    removeAbandonedTimeout 由于没有设置 validationQuery 参数,所以不生效

  • 相关阅读:
    Zabbix-Agent客户端安装
    Zabbix添加监控主机
    Zabbix3.x-Server服务端安装
    hdu-1702-栈和队列
    交换瓶子--蓝桥杯
    四平方和-蓝桥杯
    剪邮票--蓝桥杯--dfs--思路超清晰
    方格填数--蓝桥杯---dfs
    快速排序-quicksort
    日志统计--蓝桥杯--vector
  • 原文地址:https://www.cnblogs.com/chenfool/p/6717681.html
Copyright © 2011-2022 走看看