tomcat9調(diào)優(yōu)

官方網(wǎng)站

把大象裝進(jìn)冰箱需要幾個(gè)步驟:

  1. 修改catalina.sh:
    jdk7以及jdk7以下:
JAVA_OPTS="$JAVA_OPTS -server -Xms2048m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=256m -Djava.awt.headless=true -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path"

jdk8以及jdk8以上

JAVA_OPTS="$JAVA_OPTS -server -Xms2048m -Xmx2048m -Djava.awt.headless=true -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path"

說明:

  • -server參數(shù):表示以服務(wù)模式啟動,啟動速度會稍微慢一點(diǎn),但性能會高很多。不加這個(gè)參數(shù),默認(rèn)是以客戶端模式啟動。
  • java.awt.headless=true參數(shù):與圖形操作有關(guān),適用于linux系統(tǒng)。如生成驗(yàn)證碼,含義是當(dāng)前使用的是沒有安裝圖安裝圖形界面的服務(wù)器,應(yīng)用中如果獲取系統(tǒng)顯示有關(guān)參數(shù)會拋異常。
  • -XX:PermSize設(shè)置永久代初始值,默認(rèn)是物理內(nèi)存的1/64。java1.8以后不起作用了,改成了元空間,對應(yīng)參數(shù)-XX:MetaspaceSize
  • -XX:MetaspaceSize,初始空間大小,達(dá)到該值就會觸發(fā)垃圾收集進(jìn)行類型卸載,同時(shí)GC會對該值進(jìn)行調(diào)整:如果釋放了大量的空間,就適當(dāng)降低該值;如果釋放了很少的空間,那么在不超過MaxMetaspaceSize時(shí),適當(dāng)提高該值。
  • -XX:MaxMetaspaceSize,最大空間,默認(rèn)是沒有限制的。
  • XX:MaxPermSize設(shè)置最大非堆內(nèi)存的大小,默認(rèn)是物理內(nèi)存的1/4。java1.8以后不起作用了,改成了元空間,對應(yīng)參數(shù) -XX:MaxMetaspaceSize
  • -Xms、-Xmx:JVM內(nèi)存設(shè)置(堆內(nèi)存)。
    ps:這兩組最好設(shè)置成一樣的,避免上下文切換消耗資源。JDK8+永久代已經(jīng)換成了元空間,PermSize MaxPermSize這兩個(gè)參數(shù)沒用了。
  • -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path oom時(shí)打印dump文件到指定路徑
  1. 更改server.xml
<Connector
port="8080"  
protocol="org.apache.coyote.http11.Http11NioProtocol" 
enableLookups="false"            
maxThreads="1000"               
minSpareThreads="100"                            
acceptCount="5000"               
disableUploadTimeout="true"              
connectionTimeout="30000"               
URIEncoding="UTF-8"                           
redirectPort="8443"               
compression="on"              
compressionMinSize="1024" 
useSendfile="false"
noCompressionUserAgents="gozilla, traviata"            
compressibleMimeType="text/html,text/xml,text/plain,text/css,text/javascript,application/javascript "   />

說明:

  • org.apache.coyote.http11.Http11NioProtocol:調(diào)整工作模式為Nio
  • maxThreads:最大線程數(shù),默認(rèn)150。增大值避免隊(duì)列請求過多,導(dǎo)致響應(yīng)緩慢。
  • minSpareThreads:最小空閑線程數(shù)。
  • acceptCount:當(dāng)處理請求超過此值時(shí),將后來請求放到隊(duì)列中等待。
  • disableUploadTimeout:禁用上傳超時(shí)時(shí)間
  • connectionTimeout:連接超時(shí),單位毫秒,0代表不限制
  • URIEncoding:URI地址編碼使用UTF-8
  • enableLookups:關(guān)閉dns解析,提高響應(yīng)時(shí)間
  • compression:啟用壓縮功能
  • compressionMinSize:最小壓縮大小,單位Byte
  • compressibleMimeType :壓縮的文件類型
  • noCompressionUserAgents: 對 gozilla, traviata 這兩個(gè)瀏覽器不啟用壓縮。
  • useSendfile:默認(rèn)為true。如果啟用此功能,則發(fā)送會優(yōu)先于壓縮。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容