請教關於Tomcat6優化的注意事項

火星人 @ 2014-03-04 , reply:0


請教關於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  -XX:PermSize=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>
##################################################################
《解決方案》

大俠們,現身吧:em35:
《解決方案》

大俠們,現身吧
鬼樹霧爻 發表於 2010-12-23 07:18 http://bbs.chinaunix.net/images/common/back.gif


    資料庫連接遲多少?
《解決方案》

資料庫連接池在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>
####################################
《解決方案》

:dizzy:不要沉啊~~~~萬能的CU
《解決方案》

一起探討,我提幾點:

1、8G內存為何不分出更大的內存給java vm呢?考慮到4G的限制(java應該沒有4G的最大內存限制吧?我沒找到類似的資料),是不是3.5或者4或者更大些更好呢?
2、共享池才500么?E5504應該是4核2.0吧(大致這個頻率)?我覺得雙核也能承受500了,多些應該更能節省資源。另外60000的ldle是不是反而太大了呢?
3、我以為你的目錄結構要故意設計成那個樣子,我看得有點亂。reloadable="true"有些時候奇怪的問題就來自這個選項。

意見僅供討論,決定方在你。權當拋個瓦片吧。



[火星人 via ] 請教關於Tomcat6優化的注意事項已經有131次圍觀

http://www.coctec.com/docs/service/show-post-15603.html