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

 参数说明


参数 说明 
server server模式
Xmx java堆最大值
Xms java堆初始值
Xmn young 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,如果出现下面这一句,说明成功应用了APR2011-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_timeout Cache 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="$ 
    {jboss.bind.address}"
    绑定地址

DBCP配置

    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" 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>



参数   说明   
maxWait The 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 连接池中最小的空闲的连接数
timeBetweenEvictionRunsMillis The 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 使用之前先验证连接的有效性
testWhileIdle The 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

你可能感兴趣的:(DBCP)