总结tomcat优化方法
生活随笔
收集整理的這篇文章主要介紹了
总结tomcat优化方法
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
總結(jié)tomcat優(yōu)化方法
- 1 jvm垃圾回收器優(yōu)化設(shè)置
- 2.tomcat優(yōu)化
- 2.1 內(nèi)存空間優(yōu)化
- 2.2 線程池調(diào)整
1 jvm垃圾回收器優(yōu)化設(shè)置
優(yōu)化調(diào)整Java 相關(guān)參數(shù)的目標(biāo): 盡量減少FullGC和STW
通過以下選項(xiàng)可以單獨(dú)指定新生代、老年代的垃圾收集器
- -server 指定為Server模式,也是默認(rèn)值,一般使用此工作模式
- -XX:+UseSerialGC
- 運(yùn)行在Client模式下,新生代是Serial, 老年代使用SerialOld
- -XX:+UseParNewGC
- 新生代使用ParNew,老年代使用SerialOld
- -XX:+UseParallelGC
- 運(yùn)行于server模式下,新生代使用Serial Scavenge, 老年代使用SerialOld
- -XX:+UseParallelOldGC
- 新生代使用Paralell Scavenge, 老年代使用Paralell Old
- -XX:ParallelGCThreads=N,在關(guān)注吞吐量的場(chǎng)景使用此選項(xiàng)增加并行線程數(shù)
- -XX:+UseConcMarkSweepGC
- 新生代使用ParNew, 老年代優(yōu)先使用CMS,備選方式為Serial Old
- 響應(yīng)時(shí)間要短,停頓短使用這個(gè)垃圾收集器
- -XX:CMSInitiatingOccupancyFraction=N,N為0-100整數(shù)表示達(dá)到老年代的大小的百分比多少觸發(fā)回收
- 默認(rèn)68
- -XX:+UseCMSCompactAtFullCollection 開啟此值,在CMS收集后,進(jìn)行內(nèi)存碎片整理
- -XX:CMSFullGCsBeforeCompaction=N 設(shè)定多少次CMS后,進(jìn)行一次內(nèi)存碎片整理
- -XX:+CMSParallelRemarkEnabled 降低標(biāo)記停頓
范例:
-XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=80 -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=5范例: 查看默認(rèn)模式
[root@centos8 ~]#java |& grep '-server'-server to select the "server" VMThe default VM is server. [root@centos8 ~]#tail -n 2 /usr/local/jdk/jre/lib/amd64/jvm.cfg -server KNOWN -client IGNORE范例: 指定垃圾回收設(shè)置
#將參數(shù)加入到bin/catalina.sh中,重啟觀察Tomcat status。老年代已經(jīng)使用CMS [root@tomcat ~]#vim /usr/local/tomcat/bin/catalina.sh ...... # OS specific support. $var _must_ be set to either true or false.JAVA_OPTS="-server -Xmx512m -Xms128m -XX:NewSize=48m -XX:MaxNewSize=200m -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=5"cygwin=false darwin=false os400=false ....... [root@tomcat ~]#systemctl restart tomcat [root@tomcat ~]#ps aux |grep tomcat自己實(shí)驗(yàn):指定垃圾回收算法為CMS,
[root@t1:~]# vim /usr/local/tomcat/bin/catalina.sh # OS specific support. $var _must_ be set to either true or false. JAVA_OPTS="-server -Xmx512m -Xms128m -XX:NewSize=48m -XX:MaxNewSize=200m -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=5" cygwin=false darwin=false os400=false hpux=false case "`uname`" in CYGWIN*) cygwin=true;; Darwin*) darwin=true;; OS400*) os400=true;; HP-UX*) hpux=true;; esac # resolve links - $0 may be a softlink[root@t1:~]# systemctl restart tomcat [root@t1:~]# ps aux|grep java root 17831 132 8.4 2972260 154376 ? Sl 13:09 0:06 /usr/local/jdk/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -server -Xmx512m -Xms128m -XX:NewSize=48m -XX:MaxNewSize=200m -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=5 -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start root 17849 0.0 0.0 12136 1052 pts/1 R+ 13:09 0:00 grep --color=auto java #顯示出指定的算法為cms2.tomcat優(yōu)化
2.1 內(nèi)存空間優(yōu)化
JAVA_OPTS="-server -Xms4g -Xmx4g -XX:NewSize= -XX:MaxNewSize= "-server:服務(wù)器模式 -Xms:堆內(nèi)存初始化大小 -Xmx:堆內(nèi)存空間上限 -XX:NewSize=:新生代空間初始化大小 -XX:MaxNewSize=:新生代空間最大值生產(chǎn)案例:
[root@centos8 ~]#vim /usr/local/tomcat/bin/catalina.sh JAVA_OPTS="-server -Xms4g -Xmx4g -Xss512k -Xmn1g -XX:CMSInitiatingOccupancyFraction=65 -XX:+AggressiveOpts -XX:+UseBiasedLocking -XX:+DisableExplicitGC -XX:MaxTenuringThreshold=10 -XX:NewRatio=2 -XX:PermSize=128m -XX:MaxPermSize=512m -XX:CMSFullGCsBeforeCompaction=5 -XX:+ExplicitGCInvokesConcurrent -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods"#一臺(tái)tomcat服務(wù)器并發(fā)連接數(shù)不高,生產(chǎn)建議分配物理內(nèi)存通常4G到8G較多,如果需要更多連接,一般會(huì)利用虛擬化技術(shù)實(shí)現(xiàn)多臺(tái)tomcat2.2 線程池調(diào)整
[root@centos8 ~]#vim /usr/local/tomcat/conf/server.xml ...... <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> ......常用屬性:
- connectionTimeout :連接超時(shí)時(shí)長(zhǎng),單位ms
- maxThreads:最大線程數(shù),默認(rèn)200
- minSpareThreads:最小空閑線程數(shù)
- maxSpareThreads:最大空閑線程數(shù)
- acceptCount:當(dāng)啟動(dòng)線程滿了之后,等待隊(duì)列的最大長(zhǎng)度,默認(rèn)100
- URIEncoding:URI 地址編碼格式,建議使用 UTF-8
- enableLookups:是否啟用客戶端主機(jī)名的DNS反向解析,缺省禁用,建議禁用,就使用客戶端IP就行
- compression:是否啟用傳輸壓縮機(jī)制,建議 “on”,CPU和流量的平衡
- compressionMinSize:啟用壓縮傳輸?shù)臄?shù)據(jù)流最小值,單位是字節(jié)
- compressableMimeType:定義啟用壓縮功能的MIME類型text/html, text/xml, text/css, text/javascript
- compressionMinSize:啟用壓縮傳輸?shù)臄?shù)據(jù)流最小值,單位是字節(jié)
總結(jié)
以上是生活随笔為你收集整理的总结tomcat优化方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MMKV_MMKV
- 下一篇: 判断输入的IP地址是否合法