Tomcat8.5 生產環境高併發配置實戰記錄

小業務,流量不大,主要是接口高峯期會出現請求數比較多,使用Tomcat8.5 默認配置穩定運行了一段時間,後續業務增長巡查中發現出現內存不足,於是百度了一下優化方案。

有效優化地方:

1、增加JVM堆內存

相關說明如下:

可以給Java虛擬機設置使用的內存,但是如果選擇不對的話,虛擬機不會補償。可通過命令行的方式改變虛擬機使用內存的大小。

  -Xms<size> 表示JVM初始化堆的大小,-Xmx<size>表示JVM堆的最大值。一般建議堆的最大值設置爲可用內存的最大值的80%,並將-Xms和-Xmx選項設置爲相同。

具體操作方式:

Windows系統

bin目錄下增加文件:setenv.bat

內容爲:

SET JAVA_OPTS=-server -Xms1g -Xmx1g

可以通過Java VisualVM監控

路徑:\bin\jvisualvm.exe

2、調整線程數目

第一步,打開共享的線程池

<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
        maxThreads="4000" minSpareThreads="1000" maxSpareThreads="2000" maxIdleTime="60000"
    prestartminSpareThreads = "true"
    maxQueueSize = "100"/>

第二步 在Connector裏指定使用共享線程池

 <Connector executor="tomcatThreadPool" port="8080" maxHttpHeaderSize="8192"  
    maxThreads="4000" minSpareThreads="1000" maxSpareThreads="2000"  
    enableLookups="false" redirectPort="8443" acceptCount="2000"  
    connectionTimeout="20000" disableUploadTimeout="true" />

百度到還有其他優化,感覺影響不大,沒有一一測試,服務器4核8g的,上面也沒跑啥業務,併發大點就掛了感覺不科學,用了以上配置之後暫時穩定。

第二處優化參考了多個,參數沒有具體測試會不會重複或是否生效之類的,高手請幫忙指點。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章