tomcat7實戰調優筆記

java -XX:+<option>:開啓此參數指定的功能

java -XX:-<option>:關閉功能

-xx:<option>=<value>:給option指定的選項賦值



java -XX:+PrintFlagsFinal

顯示所有支持的參數以及狀態



java -D<name>=<value>:set a system property 

設置系統屬性




sun jdk監控和故障處理工具


jps, jvm process status tool 顯示指定系統內所有的hotspot 虛擬機進程的列表信息

jstat,jvm statistics monitoring tool 收集並顯示hotsppt虛擬機各方面的運行數據

jinfo,顯示hotspot正在運行虛擬機配置信息的

jmap:生成某hotspot虛擬機的內存轉出快照

可視化工具

jconsole:java的監視與管理控制檯

jvisualvm.虛擬機配置本身

tomcat各組件的關係:

<Server>

<Service>

<Connector />

<Engine>

<Host>

<Context></Context>

</Host>

</Engine>

</Service>

</Server>



server.xml 核心配置文件

tomcat-users.xml  用戶配置文件

web.xml  默認的 應用程序部署描述符

context.xml  爲上線文配置文件

logging.properties   日誌程序部署程序

catalina.properties  定義內存屬性的

catalina.policy   管理安全級別的


一般維護xml後綴的文件就可以了



localhost_access_log.2016-06-24.txt 是用戶訪問日誌

catalina.out       程序啓動日誌


temp是臨時文件目錄 

webapps應用程序目錄



調優

在catalina.sh文件第一行加下面代碼

JAVA_OPTS='-Xms2048m -Xmx2048m'

或者這行

JAVA_OPTS='-Dfile.encoding=UTF-8 -server -Xms1024m -Xmx2048m -XX:NewSize=512m -XX:MaxNewSize=1024m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:MaxTenuringThreshold=10 -XX:NewRatio=2 -XX:+DisableExplicitGC'


默認BIO模式,是性能最差的模式,

推薦使用nio模式,還有種apr模式配置起來十分複雜

打開server.xml文件

<Connector port="8080" protocol="HTTP/1.1"

               connectionTimeout="20000"

               redirectPort="8443" />

  

  

  

改成

 <Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"

               connectionTimeout="20000"

               redirectPort="8443" />

  

  

  

打開線程池server.xml

 <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"

        maxThreads="150" minSpareThreads="4"/>

這段取消註釋


並且更改

<Connector executor="tomcatThreadPool" port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"

               connectionTimeout="20000"

               redirectPort="8443" />

  

  

重點調優參數

最大連接數maxThreads="500" 

最小活躍連接數minSpareThreads="4" 建議設置100

調高最小連接數還要打開開關改成下面這樣

<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"

        maxThreads="500" minSpareThreads="100" prestartminSpareThreads="true"/>

    

最大隊列等待請求數maxQueueSize,默認是無上限,根據業務調整

<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"

        maxThreads="500" minSpareThreads="100" prestartminSpareThreads="true" maxQueueSize="50"/>


連接器調優

maxPostSize最大post限制,默認情況下是2M限制



關閉ajp協議,ajp是阿帕奇跟tomcat結合使用用到的協議,大多情況下使用nginx

註釋掉ajp協議即可

 <!--<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />-->


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章