读书人

JVM,AJP,DBCP配备参考

发布时间: 2012-07-04 19:33:54 作者: rapoo

JVM,AJP,DBCP配置参考

目前线上机器jdk 版本为1.6.0_18,建议jvm参数配置为:

-server -Xms2g -Xmx2g -Xmn512m -XX:PermSize=128m -Xss256k -XX:+DisableExplicitGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:-ReduceInitialCardMarks -XX:+UseFastAccessorMethods

?参数说明

参数说明?
serverserver模式Xmxjava堆最大值Xmsjava堆初始值Xmnyoung generation堆大小PermSize持久代初始大小Xss线程栈的大小DisableExplicitGC?关闭System.gc()UseParNewGC设置年轻代为并行收集CMSParallelRemarkEnabled降低标记停顿UseConcMarkSweepGC使用CMS垃圾收集UseCMSCompactAtFullCollection?在FULL GC的时候, 压缩内存,减少碎片-ReduceInitialCardMarks避免java 6 中CMS的一个bug, 该bug在Java6 update25中得到修复UseFastAccessorMethods原始类型的快速优化

注意:根据线上jvm 版本不同,或者应用运行情况的不同,参数可以根据实际情况调整。该标准只是一个参考值。

Apache与Jboss间AJP连接配置
  1. ?核心系统现在所有应用,Apache和jboss 间都采用APR连接。所有线上机器要求SA和OPS安装APR。检查当前机器上是否成功应用APR,可以检查jboss 日志server.log,如果出现下面这一句,说明成功应用了APR。2011-05-31 18:29:06,600?INFO? [org.apache.coyote.ajp.AjpAprProtocol] Initializing Coyote AJP/1.3 on ajp-0.0.0.0-8009
  2. 要能够成功应用APR,需要在jvm 参数中指定?-Djava.library.path=/usr/alibaba/tomcat-native/lib/
  3. ?workers.properties 配置
    worker.list=node1
    worker.node1.type=ajp13
    worker.node1.host=localhost
    worker.node1.port=8009
    worker.node1.connection_pool_timeout=600参数说明??
    connection_pool_timeoutCache timeout property should be used with?connection_pool_minsize?to specify how many seconds JK should keep an inactive socket in cache before closing it. This property should be used to reduce the number of threads on the Tomcat web server.
  4. jboss 端 server.xml 配置

    <Connector port="8009" address="$
    {jboss.bind.address}
    " protocol="AJP/1.3"
    ???????? emptySessionPath="true" enableLookups="false" redirectPort="8443" URIEncoding="UTF-8"
    ???????? maxThreads="150" backlog="256" connectionTimeout="600000"/>

    参数?
    backlog="256最大可以支持未完成连接数量maxThreads="150"最大连接数量,tomcat最多生成最大AJP线程数处理请求。enableLookups="false"是否允许DNS查找connectionTimeout="600000"tomcat保持的空闲连接最长时间。超时的空闲连接将被关闭。这个参数与worker.properties的connection_pool_timeout保持一致。注意connectionTimeout单位是秒,而connection_pool_timeout单位是毫秒protocol="AJP/1.3"协议类型URIEncoding="UTF-8"uri编码格式address="$?
    绑定地址

DBCP配置

? ? <bean id="dataSource" destroy-method="close">
??????? <property name="driverClassName" value="com.alibaba.china.jdbc.SimpleDriver" />
??????? <property name="url" value="${martini_db_url}" />
??????? <property name="username" value="${martini_db_user}" />
??????? <property name="password" value="${martini_db_passwd}" />
??????? <property name="maxWait" value="${martini_db_maxWait}" />
??????? <property name="initialSize" value="2" />
??????? <property name="maxActive" value="20" />
??????? <property name="maxIdle" value="20" />
??????? <property name="minIdle" value="0" />
??????? <property name="timeBetweenEvictionRunsMillis" value="300000" />
??????? <property name="testOnBorrow" value="false" />
??????? <property name="testWhileIdle" value="true" />
??????? <property name="validationQuery" value="select 1 from dual" />
??? </bean>

参数??
maxWaitThe maximum number of milliseconds that the pool will wait (when there are no available connections) for a connection to be returned before throwing an exception, or -1 to wait indefinitely.maxActive?
连接池中可同时连接的最大的连接数maxIdle连接池中最大的空闲的连接数,超过的空闲连接将被释放.maxIdle设置与maxActive最好相等,使DBCP连接池与数据库之间保持长连接,避免在高负载的情况下,造成频繁的连接销毁和创建。minIdle连接池中最小的空闲的连接数timeBetweenEvictionRunsMillisThe number of milliseconds to sleep between runs of the idle object evictor thread. When non-positive, no idle object evictor thread will be run.testOnBorrow使用之前先验证连接的有效性testWhileIdleThe indication of whether objects will be validated by the idle object evictor (if any). If an object fails to validate, it will be dropped from the pool.validationQuery检查的sql

读书人网 >其他数据库

热点推荐