[转]Tomcat优化之内存、并发、缓存
?
1.Tomcat內(nèi)存優(yōu)化
Tomcat內(nèi)存優(yōu)化主要是對(duì) tomcat 啟動(dòng)參數(shù)優(yōu)化,我們可以在 tomcat 的啟動(dòng)腳本 catalina.sh 中設(shè)置 JAVA_OPTS 參數(shù)。
JAVA_OPTS參數(shù)說明
-server 啟用jdk的 Server 版;一定要作為第一個(gè)參數(shù),在多個(gè)CPU時(shí)性能佳? -Xms Java虛擬機(jī)初始化時(shí)的最小內(nèi)存;Server端JVM最好將-Xms和-Xmx設(shè)為相同值; -Xmx java虛擬機(jī)可使用的最大內(nèi)存;建議不要超過物理內(nèi)存的一半; -XX: PermSize 內(nèi)存永久保留區(qū)域; -XX: MaxPermSize 內(nèi)存最大永久保留區(qū)域
服務(wù)器參數(shù)配置
現(xiàn)公司服務(wù)器內(nèi)存一般都可以加到最大2G ,所以可以采取以下配置:
JAVA_OPTS=’-Xms1024m -Xmx2048m -XX: PermSize=256M -XX:MaxNewSize=256m -XX:MaxPermSize=256m’
配置完成后可重啟Tomcat ,通過以下命令進(jìn)行查看配置是否生效:
首先查看Tomcat 進(jìn)程號(hào):
sudo lsof -i:9027
我們可以看到Tomcat 進(jìn)程號(hào)是 12222 。
查看是否配置生效:
sudo jmap – heap 12222
我們可以看到MaxHeapSize 等參數(shù)已經(jīng)生效。
**
2.Tomcat并發(fā)優(yōu)化
1.Tomcat連接相關(guān)參數(shù)
在Tomcat 配置文件 server.xml 中的
<Connector port="9027"protocol="HTTP/1.1"maxHttpHeaderSize="8192"minProcessors="100"maxProcessors="1000"acceptCount="1000"redirectPort="8443"disableUploadTimeout="true"/>?
2.調(diào)整連接器connector的并發(fā)處理能力
1>參數(shù)說明
maxThreads 客戶請(qǐng)求最大線程數(shù)
minSpareThreads Tomcat初始化時(shí)創(chuàng)建的 socket 線程數(shù)
maxSpareThreads Tomcat連接器的最大空閑 socket 線程數(shù)
enableLookups 若設(shè)為true, 則支持域名解析,可把 ip 地址解析為主機(jī)名
redirectPort 在需要基于安全通道的場(chǎng)合,把客戶請(qǐng)求轉(zhuǎn)發(fā)到基于SSL 的 redirectPort 端口
acceptAccount 監(jiān)聽端口隊(duì)列最大數(shù),滿了之后客戶請(qǐng)求會(huì)被拒絕(不能小于maxSpareThreads )
connectionTimeout 連接超時(shí)
minProcessors 服務(wù)器創(chuàng)建時(shí)的最小處理線程數(shù)
maxProcessors 服務(wù)器同時(shí)最大處理線程數(shù)
URIEncoding URL統(tǒng)一編碼
2>Tomcat中的配置示例
<Connector port="9027" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="utf-8" maxHttpHeaderSize="8192"maxThreads="1000"minSpareThreads="100"maxSpareThreads="1000"minProcessors="100"maxProcessors="1000"enableLookups="false"acceptCount="1000"disableUploadTimeout="true"/>?
3.Tomcat緩存優(yōu)化
1>參數(shù)說明
c ompression 打開壓縮功能
compressionMinSize 啟用壓縮的輸出內(nèi)容大小,這里面默認(rèn)為2KB
compressableMimeType 壓縮類型
connectionTimeout 定義建立客戶連接超時(shí)的時(shí)間. 如果為 -1, 表示不限制建立客戶連接的時(shí)間
2>Tomcat中的配置示例
<Connector port="9027"protocol="HTTP/1.1" connectionTimeout="20000"URIEncoding="utf-8" redirectPort="8443"maxHttpHeaderSize="8192"maxThreads="1000"minSpareThreads="100"maxSpareThreads="1000"minProcessors="100"maxProcessors="1000"enableLookups="false"compression="on"compressionMinSize="2048" compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"acceptCount="1000"disableUploadTimeout="true"/>
?
4.配置案例
1>舊有的配置【謹(jǐn)慎參考,原文沒有標(biāo)服務(wù)器環(huán)境】
參考網(wǎng)絡(luò)對(duì)服務(wù)器做過如下配置,拿出來分享下:
<Connector port="9027" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="utf-8" maxHttpHeaderSize="8192"maxThreads="1000"minSpareThreads="25"maxSpareThreads="75"enableLookups="false"compression="on"compressionMinSize="2048" compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"acceptCount="200"disableUploadTimeout="true" />?
后來發(fā)現(xiàn)在訪問量達(dá)到3 百萬多的時(shí)候出現(xiàn)性能瓶頸。
2>更改后的配置
?
......未完待總結(jié)
?
參考推薦:
http://www.cnblogs.com/starhu/p/5599773.html
http://ajita.iteye.com/blog/1994974
?
轉(zhuǎn)載于:https://www.cnblogs.com/gsyun/p/6945254.html
總結(jié)
以上是生活随笔為你收集整理的[转]Tomcat优化之内存、并发、缓存的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux 中识别 USB 设备名字的
- 下一篇: 项目笔记:2017年(SSM架构)