2018年05月20日 15:39:35 鏡水靈動 閱讀數:2320html
版權聲明:本文爲博主原創文章,未經博主容許不得轉載。 https://blog.csdn.net/u014172271/article/details/80381640java
1.tomcat內存優化:web
對tomcat啓動參數優化咱們能夠在tomcat的啓動腳本 catalina.sh 中設置 JAVA_OPTS參數。apache
JAVA_OPTS="-server -Xms2048M -Xmx2048M -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$CATALINA_HOME/logs/heap.dump"
2.併發優化vim
${tomcat}/webapps/docs/config/http.html文件中參數:tomcat
(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 Connectorapp
(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" />
到如今咱們看到配置成功。