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 参数,所以不生效
Tomcat 连接池调优的更多相关文章
- tomcat线程池调优
之前项目一直在tomcat下开发,后来在上线之前,需要进行性能安全测试,可是测试的同事反应,登陆口线程并发一多的时候,系统立马就没法登陆了. 中间件是tomcat6. tomcat的日志总是简洁的很 ...
- Tomcat 连接池详解
(转) JDBC 连接池 org.apache.tomcat.jdbc.pool 是Apache-Commons DBCP连接池的一种替换或备选方案. 那究竟为何需要一个新的连接池? 原因如下: Co ...
- Tomcat连接池配置与实现/JNDI
方法一: 在Tomcat的conf/context.xml中配置在Tomcat\apache-tomcat-6.0.33\conf目录下的context.xml文件中配置默认值如下: <?xml ...
- Linux 跟踪连接netfilter 调优
Netfilter介绍 linux内核中的netfilter是一款强大的基于状态的防火墙,具有连接跟踪(conntrack)的实现.conntrack是netfilter的核心,许多增强的功能,例如, ...
- DB数据源之SpringBoot+MyBatis踏坑过程(七)手动使用Tomcat连接池
DB数据源之SpringBoot+MyBatis踏坑过程(七)手动使用Tomcat连接池 liuyuhang原创,未经允许禁止转载 系列目录连接 DB数据源之SpringBoot+Mybatis踏坑 ...
- Tomcat系列(9)——Tomcat 6方面调优(内存,线程,IO,压缩,缓存,集群)
核心部分 内存 线程 IO 压缩 缓存 集群 一.JVM内存优化 Tomcat内存优化,包括内存大小,垃圾回收策略. Windows 下的catalina.bat,Linux 下的catalina.s ...
- 【多处摘抄】Tomcat监视与调优
文章摘抄大量内容,已附上摘抄地址,未找到最初博文作者,在此对原作者表述感谢: 最近调整了公司的Web容器,然后把项目转移到了idea,并且重新分了包,我以前很多重复的东西整合了一下,但是最近线下 ...
- Tomcat+MySQL常见调优参数
一.Tomcat 调优 (一).Tomcat内存优化 参数一: vim /tomcat/bin/catalina.sh CATALINA_OPTS="-server -Xms128m -Xm ...
- JVM的常用的调优策略和垃圾回收算法及Tomcat的常用调优参数
jvm调优主要针对堆内存,堆内存分为:新生区.养老区和永久区 永久区存放的是系统jdk自身的interface和class的元数据,所以唯有新生区和养老区具有优化空间. 新生区:伊甸区和幸存者区.所有 ...
随机推荐
- 2018-11-9-匿名函数&递归函数初识
1.匿名函数(lambda) 2.递归函数初识
- 简单监控网站访问是否正常的shell脚本,邮件报警。网站恢复后继续运行。
#!/bin/bash # 使用curl检查网页是否可以正常访问,如果无法访问则发邮件. SITE=crm.bjzgjh.com PROT=80 URL="http://$SITE:$PRO ...
- 【LeetCode】Search in Rotated Sorted Array II(转)
原文链接 http://oj.leetcode.com/problems/search-in-rotated-sorted-array-ii/ http://blog.csdn.net/linhuan ...
- wireshark 学习 1
wireshark 调试WiFi 安装之后的启动脚步. #!/bin/bash iw dev mon0 del iw dev wlp3s0 interface add mon0 type monito ...
- 【R】R语言生成随机数
1.概述 作为一种语言进行统计分析,R有一个随机数生成各种统计分布功能的综合性图书馆.R语言可以针对不同的分布,生成该分布下的随机数.其中,有许多常用的个分布可以直接调用.本文简单介绍生成常用分布随机 ...
- office web apps 整合到自己项目中(wopi实现在线预览编辑)
借助office web apps实现在线预览和在线编辑 我所有的代码都是用go语言编写,你可以直接编译后使用,不用再有其他的操作. 最近项目实在太忙,这几天才有时间,这次是重头戏,要好好琢磨一下怎么 ...
- String StringBuffer StringBuilder 三者之间的区别
今天被公司骗去面试,好糟心...... 这个问题不管去哪里面试,基础问题基本上都会问到这个问题.网上好多大神都总结,这里自己也总结一下. 首先我们最开始学的就是String字符串常量,这里有行代码 S ...
- 棋盘覆盖问题 (粉书 P230 【递归】** )
转载自:http://blog.csdn.net/akof1314/article/details/5423608 (赞) 在一个 2^k * 2^k 个方格组成的棋盘中,若恰有一个方格与其它方格不 ...
- linux命令行快捷键记录
摘自: http://www.cnblogs.com/webzhangnan/p/3221410.html [移动光标] Ctrl+A 标移到行首.它在多数文本编辑器和 Mozilla 的 URL 字 ...
- org.jetbrains.android.uipreview.RenderingException: Failed to load the LayoutLib: com/android/layoutlib/bridge/Bridge : Unsupported major.minor version 52.0
在Android Studio使用的时候,突然发现Preview功能不能用了,报了一个错,错误如下 org.jetbrains.android.uipreview.RenderingException ...