JVM調優(二)參數配置解釋 以及tomcat調優

調優參數網站

https://docs.oracle.com/javase/8/docs/technotes/tools/windows/toc.html

1、上個例子

這節用某項目做示例

java -jar -server -XX: -PrintGCDetails -xloggc: ./1g/gc. log-xx: +HeapDumpOnOutOfMemoryError -Xms1g -xmx lg XX: MaxGCPauseMillis=250 -Djava.awt. headless=true stress-test-demo-001SNAPSHOT. jar

-server 提高吞吐量
-client 提高響應時間
-Xms 堆內存的最小大小,默認爲物理內存的1/64

-Xmx 堆內存的最大大小,默認爲物理內存的1/4

-Xmn 堆內新生代的大小。通過這個值也可以得到老生代的大小:-Xmx減去-Xmn

-Xss 設置每個線程可使用的內存大小,即棧的大小。在相同物理內存下,減小這個值能生成更多的線程,當然操作系統對一個進程內的線程數還是有限制的,不能無限生成。線程棧的大小是個雙刃劍,如果設置過小,可能會出現棧溢出,特別是在該線程內有遞歸、大的循環時出現溢出的可能性更大,如果該值設置過大,就有影響到創建棧的數量,如果是多線程的應用,就會出現內存溢出的錯誤。

 java -Xms500m -Xmx500m -Xmn250m -Xss256k -server -XX:+HeapDumpOnOutOfMemoryError -jar  bdf_apiroute_boot.jar

https://blog.csdn.net/userofithis/article/details/92420624

2、修改jar包的tomcat連接數

server.tomcat.uri-encoding: UTF-8
server.tomcat.max-threads: 1000
server.tomcat.max-connections: 20000

3、優化:移除servlet(假設不需要jsp,只是個rest服務、不需要靜態資源)

去除下面一段
在這裏插入圖片描述

4、內置tomcat調線程數等參數

#線程池大小
server.tomcat.maxThreads=100
server.tomcat.minSpareThreads=10
# 取消 tomcat ACCESSlogvalue
server.tomcat.accesslog.enabled=false
#取消jsp servlet
server.jspServlet.registered=false
#取消靜態資源處理
spring.resources.chain.enable=false

5、接上個問題 如何計算tomcat線程池大小?

線程大小 = ( (線程io時間 + 線程cpu) / 線程cpu time) * cpu核數
舉例: 線程io時間爲100ms(IO操作比如數據庫查詢,同步遠程調用等),線程cpu時間10ms,服務器物理機核數爲4個。通過上面的公式,我們計算出來的大小是 ((100 + 10 )/10 ) *4 = 44。

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