Chinaunix

标题: 请教关于Tomcat6优化的注意事项 [打印本页]

作者: 鬼树雾爻    时间: 2010-12-22 21:58
标题: 请教关于Tomcat6优化的注意事项
目前的架构是:

Apache2.2.17+Tomcat6.0.26做集群,通过ProxyPass方式,数据库使用的是mysql-5.1.45。

服务器配置:Xeon E5504、8G内存、SAS硬盘。

请教万能的CU,Tomcat做优化(瘦身),我的配置有哪些不足之处和不完善的地方。(本人无JAVA开发经验,网上的好多帖子,我也看的似懂非懂)请大侠们指教!
Tomcat增加的JVM的虚拟内存,命令如下:
JAVA_OPTS="-server -Xms1024m -Xmx1024m  -XXermSize=128M -XX:MaxNewSize=512m -XX:MaxPermSize=256m -Djava.awt.headless=true"

Tomcat配置文件如下:
##################################################################
<?xml version='1.0' encoding='utf-8'?>
<Server port="8005" shutdown="SHUTDOWN">

  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
  <Listener className="org.apache.catalina.core.JasperListener" />
  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
  <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" />
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />

  <GlobalNamingResources>

    <Resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
              description="User database that can be updated and saved"
              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
              pathname="conf/tomcat-users.xml" />

  </GlobalNamingResources>

  <Service name="Catalina">

     <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="500" minSpareThreads="20" maxIdleTime="60000" />

     <Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" redirectPort="8443"
        maxHttpHeaderSize="8192" useBodyEncodingForURI="true"
        executor="tomcatThreadPool"
        enableLookups="false" acceptCount="100"
        compression="on" compressionMinSize="2048"
        compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
        connectionTimeout="60000" disableUploadTimeout="true" URIEncoding="UTF-8"/>


     <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8" />
     <Engine name="Catalina" defaultHost="localhost">

       <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
              resourceName="UserDatabase"/>

       <Host name="localhost"  appBase=""
             unpackWARs="true" autoDeploy="true"
             xmlValidation="false" xmlNamespaceAware="false">

        <Context path="/test" docBase="/data/test" reloadable="true" />

         <Valve className="org.apache.catalina.valves.AccessLogValve"
                directory="/data/logs" prefix="test_access_log."
                pattern="combined" resolveHosts="false" fileDateFormat="yyyyMMdd" />

      </Host>
    </Engine>
  </Service>
</Server>
##################################################################
作者: 鬼树雾爻    时间: 2010-12-23 07:18
大侠们,现身吧
作者: 版主杀手    时间: 2010-12-23 10:33
大侠们,现身吧
鬼树雾爻 发表于 2010-12-23 07:18



    数据库连接迟多少?
作者: 鬼树雾爻    时间: 2010-12-23 10:55
数据库连接池在spring.xml定义的

配置如下:
####################################
        <bean
                id="dataSource"
                class="org.apache.commons.dbcp.BasicDataSource"
                destroy-method="close">
                <property name="driverClassName">
                        <value>${hibernate.connection.driverClass}</value>
                </property>
                <property name="url">
                        <value>${hibernate.connection.url}</value>
                </property>
                <property name="username">
                        <value>${hibernate.connection.userName}</value>
                </property>
                <property name="password">
                        <value>${hibernate.connection.password}</value>
                </property>

                <property name="maxActive">
                        <value>1000</value>
                </property>
                <property name="maxIdle">
                        <value>20</value>
                </property>
        </bean>
####################################
作者: 鬼树雾爻    时间: 2010-12-23 18:40
不要沉啊~~~~万能的CU
作者: zxpxyz    时间: 2010-12-27 13:46
一起探讨,我提几点:

1、8G内存为何不分出更大的内存给java vm呢?考虑到4G的限制(java应该没有4G的最大内存限制吧?我没找到类似的资料),是不是3.5或者4或者更大些更好呢?
2、共享池才500么?E5504应该是4核2.0吧(大致这个频率)?我觉得双核也能承受500了,多些应该更能节省资源。另外60000的ldle是不是反而太大了呢?
3、我以为你的目录结构要故意设计成那个样子,我看得有点乱。reloadable="true"有些时候奇怪的问题就来自这个选项。

意见仅供讨论,决定方在你。权当抛个瓦片吧。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2