1. 程式人生 > >生產環境:tomcat9,jdk8優化配置

生產環境:tomcat9,jdk8優化配置

生產環境:tomcat9,jdk8優化配置

2018年05月20日 15:39:35 鏡水靈動 閱讀數:2320

版權宣告:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/u014172271/article/details/80381640

1.tomcat記憶體優化:

對tomcat啟動引數優化我們可以在tomcat的啟動指令碼 catalina.sh 中設定 JAVA_OPTS引數。

JAVA_OPTS="-server -Xms2048M -Xmx2048M -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$CATALINA_HOME/logs/heap.dump"

2.併發優化

${tomcat}/webapps/docs/config/http.html檔案中引數:

(1)maxConnections:The maximum number of connections that the server will accept and process at any given time

伺服器在任何給定時間接受和處理的最大連線數。

(2)acceptCount:The maximum queue length for incoming connection requests when all possible request processing threads are in use.當所有可能的請求處理執行緒都在使用時,傳入連線請求的最大佇列長度。監聽埠佇列最大數,滿了之後客戶請求會被拒絕

(3)maxThreads:工作執行緒,The maximum number of request processing threads to be created by this Connector

(4)minSpareThreads:最小空閒的工作執行緒。The minimum number of threads always kept running

3.其他優化:

(1)${tomcat}/webapps/docs/config/host.html
autoDeploy:This flag value indicates if Tomcat should check periodically for new or updated web applications while Tomcat is running 自動部署Tomcat是否應該定期檢查新的或更新的Web應用程式。 false
(2)${tomcat}/webapps/docs/config/http.html
enableLookups:false  若設為true, 則支援域名解析,可把 ip 地址解析為主機名
(3)${tomcat}/webapps/docs/config/context.html:

reloadable:false 

4. connector:apr。

bio 
bio(blocking I/O),顧名思義,即阻塞式I/O操作,表示Tomcat使用的是傳統的Java I/O操作(即java.io包及其子包)。Tomcat在預設情況下,就是以bio模式執行的。遺憾的是,就一般而言,bio模式是三種執行模式中效能最低的一種。我們可以通過Tomcat Manager來檢視伺服器的當前狀態。
nio 
是Java SE 1.4及後續版本提供的一種新的I/O操作方式(即java.nio包及其子包)。Java nio是一個基於緩衝區、並能提供非阻塞I/O操作的Java API,因此nio也被看成是non-blocking I/O的縮寫。它擁有比傳統I/O操作(bio)更好的併發執行效能。
apr 

(Apache Portable Runtime/Apache可移植執行庫),是Apache HTTP伺服器的支援庫。你可以簡單地理解為,Tomcat將以JNI的形式呼叫Apache HTTP伺服器的核心動態連結庫來處理檔案讀取或網路傳輸操作,從而大大地提高Tomcat對靜態檔案的處理效能。 Tomcat apr也是在Tomcat上執行高併發應用的首選模式。

下載相關的工具包
wget http://mirrors.aliyun.com/apache/apr/apr-1.6.3.tar.gz
wget http://mirrors.aliyun.com/apache/apr/apr-util-1.6.1.tar.gz 
mkdir   /usr/local/apr  
將tomcat9的bin目錄下的tomcat-native.tar.gz複製到/usr/local/apr 


tar -zxvf tomcat-native.tar.gz
cd tomcat-native-1.2.12-src
cd native
./configure --with-apr=/usr/local/apr 


tar zxvf apr-1.6.3.tar  
cd apr-1.6.3  
./configure --prefix=/usr/local/apr  
make  
make install  


tar -zxvf apr-iconv-1.2.2.tar.gz   
cd apr-iconv-1.2.2  
./configure --prefix=/usr/local/apr-iconv --with-apr=/usr/local/apr  
make  
make install
按照上面的安裝好之後配置tomcat:
vim catalina.sh:
JAVA_OPTS="-server -Xms2048M -Xmx2048M -XX:MetaspaceSize=128M -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$CATALINA_HOME/logs/heap.dump"
JAVA_OPTS="$JAVA_OPTS -Djava.library.path=/usr/local/apr/lib"
注意:開啟了apr之後,jvm用到的native記憶體會增大,因此要適當調大Metaspace空間,新增JVM選項:-XX:MetaspaceSize=128m

server.xml:
<Connector port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol"
connectionTimeout="20000"
redirectPort="8443" />

<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="off" />

到現在我們看到配置成功。