Tomcat優化配置

一、環境:javascript

  系統:Windows、Linuxcss

  Tomcat版本:9html

 

二、編碼與性能調優java

  server.xml文件:web

<Connector port="8080" connectionTimeout="20000" redirectPort="8443" 
  protocol="org.apache.coyote.http11.Http11NioProtocol"
  enableLookups="false"
  maxThreads="1000"
  minSpareThreads="100"
  acceptCount="1500"
  disableUploadTimeout="true"
  URIEncoding="UTF-8"
  compression="on"
  compressionMinSize="1024"
  useSendfile="false"
  noCompressionUserAgents="gozilla, traviata"
  compressibleMimeType="text/html,text/xml,text/plain,text/css,text/javascript,application/javascript"
/>

  參數說明:apache

    • org.apache.coyote.http11.Http11NioProtocol:調整工做模式爲Nio
    • maxThreads:最大線程數,默認150。增大值避免隊列請求過多,致使響應緩慢。
    • minSpareThreads:最小空閒線程數。
    • acceptCount:當處理請求超過此值時,將後來請求放到隊列中等待。
    • disableUploadTimeout:禁用上傳超時時間
    • connectionTimeout:鏈接超時,單位毫秒,0表明不限制
    • URIEncoding:URI地址編碼使用UTF-8
    • enableLookups:關閉dns解析,提升響應時間
    • compression:啓用壓縮功能
    • compressionMinSize:最小壓縮大小,單位Byte
    • compressibleMimeType :壓縮的文件類型

 

三、內存配置tomcat

  打開$TOMCAT_HOME/bin/catalina.sh文件(Windows系統是catalina.bat文件),大楖在250行左右,在JAVA_OPTS參數上添加內存參數設置便可bash

  catalina.sh:服務器

JAVA_OPTS="$JAVA_OPTS $JSSE_OPTS -server -Xms2048m -Xmx2048m -XX:PermSize=128m -XX:MaxPermSize=256 -Djava.awt.headless=true"

  catalina.bat:session

set "JAVA_OPTS=%JAVA_OPTS% %JSSE_OPTS% -server -Xms2048m -Xmx2048m -XX:PermSize=128m -XX:MaxPermSize=256 -Djava.awt.headless=true"

  -server參數:表示以服務模式啓動,啓動速度會稍微慢一點,但性能會高不少。不加這個參數,默認是以客戶端模式啓動。 
  java.awt.headless=true參數:與圖形操做有關,適用於Linux系統。如生成驗證碼,含義是當前使用的是沒有安裝圖安裝圖形界面的服務器,應用中若是獲取系統顯示有關參數會拋異常,可經過jmap -heap proccess_id查看設置是否成功。

 

四、啓用後臺管理

  conf\tomcat-users.xml

<role rolename="manager-status"/>
<role rolename="manager"/>  
<role rolename="manager-jmx"/> 
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="admin"/>
<user username="admin" password="123" roles="manager,manager-gui,admin,manager-status,manager-jmx,manager-script"/>

  webapps\manager\META-INF\context.xml

<Context antiResourceLocking="false" privileged="true" >
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|\d+\.\d+\.\d+\.\d+" />
  <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>

 

五、修改進程名稱

  setclasspath.bat,找到set _RUNJAVA=」%JRE_HOME%\bin\java」這一行。 將該行註釋掉 ,而後在該行下面添加以下兩行並進行保存:

copy "%JRE_HOME%\bin\java.exe" "%JRE_HOME%\bin\my_java.exe"
set _RUNJAVA="%JRE_HOME%\bin\my_java"

  setclasspath.sh,找到_RUNJAVA="$JRE_HOME"/bin/java這一行, 並註釋掉,而後在該行下面添加如兩行並進行保存:

cp "$JRE_HOME"/bin/java "$JRE_HOME"/bin/my_java
_RUNJAVA="$JRE_HOME"/bin/my_java
相關文章
相關標籤/搜索