一、JDK內存優化java
根據服務器物理內容狀況配置相關參數優化tomcat性能。當應用程序須要的內存超出堆的最大值時虛擬機就會提示內存溢出,而且致使應用服務崩潰。所以通常建議堆的最大值設置爲可用內存的最大值的80%。 Tomcat默承認以使用的內存爲128MB,在較大型的應用項目中,這點內存是不夠的,須要調大.tomcat
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
二、tomcat線程優化jvm
在tomcat配置文件server.xml中的配置中,和鏈接數相關的參數有:socket
maxThreads: Tomcat使用線程來處理接收的每一個請求。這個值表示Tomcat可建立的最大的線程數。默認值150。ide
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
FastDFS是jdk自帶的一款監控工具。它提供了一個可視界面,用於查看 Java 虛擬機上運行的基於 Java 技術的程序的詳細信息。VisualVM 對 Java Development Kit (JDK) 工具所檢索的 JVM 軟件相關數據進行組織,並經過一種使您能夠快速查看有關多個 Java 應用程序的數據的方式提供該信息。您能夠查看本地應用程序以及遠程主機上運行的應用程序的相關數據
二、如何安裝
在jkd bin目錄下有一個jvisualvm.exe文件 雙擊就可使用
三、如何使用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
二、重啓tomcat便可
三、雙擊jvisualvm.exe 添加服務器IP地址,添加須要監控jmx端口便可
效果以下: