2018-10-03
原文推薦 原文作者:純潔的微笑
tomcat服務(wù)器優(yōu)化
1蔗蹋、JDK內(nèi)存優(yōu)化
根據(jù)服務(wù)器物理內(nèi)容情況配置相關(guān)參數(shù)優(yōu)化tomcat性能。當應(yīng)用程序需要的內(nèi)存超出堆的最大值時虛擬機就會提示內(nèi)存溢出猪杭,并且導致應(yīng)用服務(wù)崩潰绎橘。因此一般建議堆的最大值設(shè)置為可用內(nèi)存的最大值的80%唠倦。 Tomcat默認可以使用的內(nèi)存為128MB,在較大型的應(yīng)用項目中稠鼻,這點內(nèi)存是不夠的,需要調(diào)大候齿。
Tomcat默認可以使用的內(nèi)存為128MB,Windows下,在文件/bin/catalina.bat闺属,Unix下慌盯,在文件/bin/catalina.sh的前面掂器,增加如下設(shè)置: JAVA_OPTS='-Xms【初始化內(nèi)存大小】 -Xmx【可以使用的最大內(nèi)存】 -XX:PermSize=64M -XX:MaxPermSize=128m' 需要把幾個參數(shù)值調(diào)大。例如: JAVA_OPTS='-Xms256m -Xmx512m' 表示初始化內(nèi)存為256MB国瓮,可以使用的最大內(nèi)存為512MB。
2禁漓、tomcat線程優(yōu)化
在tomcat配置文件server.xml中的配置中,和連接數(shù)相關(guān)的參數(shù)有:
maxThreads: Tomcat使用線程來處理接收的每個請求播歼。這個值表示Tomcat可創(chuàng)建的最大的線程數(shù)掰读。默認值150秘狞。
acceptCount: 指定當所有可以使用的處理請求的線程數(shù)都被使用時磷支,可以放到處理隊列中的請求數(shù)食寡,超過這個數(shù)的請求將不予處理。默認值10台丛。
minSpareThreads: Tomcat初始化時創(chuàng)建的線程數(shù)。默認值25呻畸。
maxSpareThreads: 一旦創(chuàng)建的線程超過這個值移盆,Tomcat就會關(guān)閉不再需要的socket線程伤为。默認值75据途。
enableLookups: 是否反查域名,默認值為true颖医。為了提高處理能力裆蒸,應(yīng)設(shè)置為false
connnectionTimeout: 網(wǎng)絡(luò)連接超時熔萧,默認值60000僚祷,單位:毫秒。設(shè)置為0表示永不超時辙谜,這樣設(shè)置有隱患的。通忱哐荩可設(shè)置為30000毫秒烂琴。
maxKeepAliveRequests: 保持請求數(shù)量爹殊,默認值100奸绷。 bufferSize: 輸入流緩沖大小,默認值2048 bytes号醉。
compression: 壓縮傳輸,取值on/off/force铅碍,默認值off线椰。 其中和最大連接數(shù)相關(guān)的參數(shù)為maxThreads和acceptCount胞谈。如果要加大并發(fā)連接數(shù)憨愉,應(yīng)同時加大這兩個參數(shù)。
使用visualvm性能監(jiān)控
什么是VisualVM:
visualvm是jdk自帶的一款監(jiān)控工具径密。它提供了一個可視界面躺孝,用于查看 Java 虛擬機上運行的基于 Java 技術(shù)的程序的詳細信息享扔。VisualVM 對 Java Development Kit (JDK) 工具所檢索的 JVM 軟件相關(guān)數(shù)據(jù)進行組織,并通過一種使您可以快速查看有關(guān)多個 Java 應(yīng)用程序的數(shù)據(jù)的方式提供該信息戚啥。您可以查看本地應(yīng)用程序以及遠程主機上運行的應(yīng)用程序的相關(guān)數(shù)據(jù)
如何安裝:
在jdk 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
2猫十、重啟tomcat即可
3呆盖、雙擊jvisualvm.exe 添加服務(wù)器IP地址,添加需要監(jiān)控jmx端口即可