tomcat伺服器優化
1、JDK記憶體優化
根據伺服器實體内容情況配置相關參數優化tomcat性能。當應用程式需要的記憶體超出堆的最大值時虛拟機就會提示記憶體溢出,并且導緻應用服務崩潰。是以一般建議堆的最大值設定為可用記憶體的最大值的80%。 Tomcat預設可以使用的記憶體為128MB,在較大型的應用項目中,這點記憶體是不夠的,需要調大.
Tomcat預設可以使用的記憶體為128MB,Windows下,在檔案/bin/catalina.bat,Unix下,在檔案/bin/catalina.sh的前面,增加如下設定: JAVA_OPTS='-Xms【初始化記憶體大小】 -Xmx【可以使用的最大記憶體】 -XX:PermSize=64M -XX:MaxPermSize=128m' 需要把幾個參數值調大。例如: JAVA_OPTS='-Xms256m -Xmx512m' 表示初始化記憶體為256MB,可以使用的最大記憶體為512MB。
參數詳解
-server 啟用jdk 的 server 版;
-Xms java虛拟機初始化時的最小記憶體;
-Xmx java虛拟機可使用的最大記憶體;
-XX:PermSize 記憶體永久保留區域
-XX:MaxPermSize 記憶體最大永久保留區域
-Xmn jvm最小記憶體
32G 記憶體配置示例:
JAVA_OPTS="$JAVA_OPTS -Xms10g -Xmx10g -XX:PermSize=1g -XX:MaxPermSize=2g -Xshare:off -Xmn1024m
2、tomcat線程優化
在tomcat配置檔案server.xml中的配置中,和連接配接數相關的參數有:
maxThreads: Tomcat使用線程來處理接收的每個請求。這個值表示Tomcat可建立的最大的線程數。預設值150。
acceptCount: 指定當所有可以使用的處理請求的線程數都被使用時,可以放到處理隊列中的請求數,超過這個數的請求将不予處理。預設值10。
minSpareThreads: Tomcat初始化時建立的線程數。預設值25。
maxSpareThreads: 一旦建立的線程超過這個值,Tomcat就會關閉不再需要的socket線程。預設值75。
enableLookups: 是否反查域名,預設值為true。為了提高處理能力,應設定為false
connnectionTimeout: 網絡連接配接逾時,預設值60000,機關:毫秒。設定為0表示永不逾時,這樣設定有隐患的。通常可設定為30000毫秒。
maxKeepAliveRequests: 保持請求數量,預設值100。 bufferSize: 輸入流緩沖大小,預設值2048 bytes。
compression: 壓縮傳輸,取值on/off/force,預設值off。 其中和最大連接配接數相關的參數為maxThreads和acceptCount。如果要加大并發連接配接數,應同時加大這兩個參數。
32G 記憶體配置示例:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000" maxThreads="1000" minSpareThreads="60" maxSpareThreads="600" acceptCount="120"
redirectPort="8443" URIEncoding="utf-8"/>
使用visualvm性能監控
1、什麼是VisualVM
FastDFS是jdk自帶的一款監控工具。它提供了一個可視界面,用于檢視 Java 虛拟機上運作的基于 Java 技術的程式的詳細資訊。VisualVM 對 Java Development Kit (JDK) 工具所檢索的 JVM 軟體相關資料進行組織,并通過一種使您可以快速檢視有關多個 Java 應用程式的資料的方式提供該資訊。您可以檢視本地應用程式以及遠端主機上運作的應用程式的相關資料
2、如何安裝
在jkd bin目錄下有一個jvisualvm.exe檔案 輕按兩下就可以使用
3、如何使用jvisualvm
1、配置JMX管理tomcat:
set JAVA_OPTS=-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9008 -Dcom.sun.management.jmxremote.authenticate=false - Dcom.sun.management.jmxremote.ssl=false
2、重新開機tomcat即可
3、輕按兩下jvisualvm.exe 添加伺服器IP位址,添加需要監控jmx端口即可
效果如下:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnLyczNykTMwUzNx0yMxETNxEzM2ETMxQDM2EDMy0SNyQTMzMzLcRDM2EDMy8CX1IDNxMzMvw1ZvxmYvwVbvNmLzd2bsJmbj5SNxAjMzV2Zh1Wavw1LcpDc0RHaiojIsJye.png)