溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

tomcat9 中怎么設(shè)置虛擬內(nèi)存

發(fā)布時間:2021-07-22 17:42:33 來源:億速云 閱讀:1048 作者:Leah 欄目:大數(shù)據(jù)

本篇文章給大家分享的是有關(guān)tomcat9 中怎么設(shè)置虛擬內(nèi)存 ,小編覺得挺實用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

1 Server.xml配置修改

Connector是連接器,負(fù)責(zé)接收客戶的請求,以及向客戶端回送響應(yīng)的消息。

打開tomcat/conf/server.xml,找到如下配置

<Connector port="8080" protocol="HTTP/1.1"  connectionTimeout="20000"  redirectPort="8443" />

修改為

<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" 
        enableLookups="false"            
        maxThreads="10000"               
        minSpareThreads="1000"                            
        acceptCount="9000"               
        disableUploadTimeout="true"              
        connectionTimeout="20000"               
        URIEncoding="UTF-8"                           
        redirectPort="8443" 
        compression="on"              
        compressionMinSize="1024"               
        useSendfile="true"
        noCompressionUserAgents="gozilla, traviata"            
 compressibleMimeType="text/html,text/xml,text/plain,text/css,text/javascript,application/javascript "  />

參數(shù)描述:

  • org.apache.coyote.http11.Http11NioProtocol:調(diào)整工作模式為Nio

  • maxThreads:最大線程數(shù),默認(rèn)150。增大值避免隊列請求過多,導(dǎo)致響應(yīng)緩慢。

  • minSpareThreads:最小空閑線程數(shù)。

  • acceptCount:當(dāng)處理請求超過此值時,將后來請求放到隊列中等待。

  • disableUploadTimeout:禁用上傳超時時間

  • connectionTimeout:連接超時,單位毫秒,0代表不限制

  • URIEncoding:URI地址編碼使用UTF-8

  • enableLookups:關(guān)閉dns解析,提高響應(yīng)時間

  • compression:啟用壓縮功能

  • compressionMinSize:最小壓縮大小,單位Byte

  • compressibleMimeType :壓縮的文件類型

2 JVM 優(yōu)化

需要基礎(chǔ)知識:堆棧內(nèi)存,jvm 垃圾收集器,jvm 性能監(jiān)控常用工具,能夠讀懂gc日志等。

JDK 1.8中 PermSize 和 MaxPermGen 已經(jīng)無效。JDK 1.8 中已經(jīng)不存在永久代的結(jié)論 而以 元空間 代替

修改 tomcat/bin/catalina.sh (8G 內(nèi)存機器參考配置):

JAVA_OPTS="-Xms4G -Xmx4G -Xmn1024m -XX:MetaspaceSize=1024M -XX:MaxMetaspaceSize=1024M 
-XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+HeapDumpOnOutOfMemoryError 
-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps 
-Xloggc:/appl/gc.log -XX:CMSInitiatingOccupancyFraction=75 
-XX:+UseCMSInitiatingOccupancyOnly"
  • -Xms4G 初始分配的堆內(nèi)存

  • -Xmx4G 最大允許分配的堆內(nèi)存,這兩個配成一樣。

  • -Xmn1024m   最小允許分配的堆內(nèi)存。

  • -XX:MetaspaceSize=1024M  初始元空間大小,達到該值就會觸發(fā)垃圾收集進行類型卸載,同時GC會對該值進行調(diào)整:如果釋放了大量的空間,就適當(dāng)降低該值;如果釋放了很少的空間,那么在不超過MaxMetaspaceSize時,適當(dāng)提高該值。

  • -XX:MaxMetaspaceSize=1024M

  • -XX:+UseConcMarkSweepGC    并發(fā)標(biāo)記清除(CMS)收集器

  • -XX:+CMSClassUnloadingEnabled  

  • -XX:+HeapDumpOnOutOfMemoryError  表示當(dāng)JVM發(fā)生OOM時,自動生成DUMP文件。

  • -XX:HeapDumpPath=${目錄}參數(shù)表示生成DUMP文件的路徑,也可以指定文件名稱,例如:-XX:HeapDumpPath=${目錄}/java_heapdump.hprof。如果不指定文件名,默認(rèn)為:java_<pid>_<date>_<time>_heapDump.hprof。

  • -verbose:gc   輸出GC日志 ,  -XX:+PrintGC 與 -verbose:gc 是一樣的,可以認(rèn)為-verbose:gc 是 -XX:+PrintGC的別名.

  • -XX:+PrintGCDetails  打印GC詳細信息

  • -XX:+PrintGCTimeStamps 打印gc時間戳

  • -XX:+PrintGCDateStamps  

  • -Xloggc:/appl/gc.log    定義gc日志目錄

  • -XX:CMSInitiatingOccupancyFraction=75    是指設(shè)定CMS在對內(nèi)存占用率達到75%的時候開始GC(因為CMS會有浮動垃圾,所以一般都較早啟動GC);

  • -XX:+UseCMSInitiatingOccupancyOnly    只是用設(shè)定的回收閾值(上面指定的75%),如果不指定,JVM僅在第一次使用設(shè)定值,后續(xù)則自動調(diào)整

管理AJP端口

AJP是為 Tomcat 與 HTTP 服務(wù)器之間通信而定制的協(xié)議,能提供較高的通信速度和效率。如果tomcat前端放的是apache的時候,會使用到AJP這個連接器。由于我們公司前端是由nginx做的反向代理,因此不使用此連接器,因此需要注銷掉該連接器

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

默認(rèn) Tomcat 是開啟了對war包的熱部署的。為了防止被植入木馬等惡意程序,因此我們要關(guān)閉自動部署。
修改實例:

<Host name="localhost"  appBase=""    unpackWARs="false" autoDeploy="false">

以上就是tomcat9 中怎么設(shè)置虛擬內(nèi)存 ,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI