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" />-->