參考://blog.linuxeye.com/262.htmlhtml
Tomcat的運行模式有3種java
默認的模式,性能很是低下,沒有通過任何優化處理和支持.linux
利用java的異步io護理技術,noblocking IO技術apache
想運行在該模式下,直接修改server.xml裏的Connector節點,修改protocol爲tomcat
啓動後,就能夠生效。併發
從操做系統級別來解決異步的IO問題,大幅度的提升性能。less
必需要安裝apr和native,直接啓動就支持apr異步
修改protocol爲org.apache.coyote.http11.Http11AprProtocoljvm
參考:https://my.oschina.net/u/1160316/blog/806956性能
併發優化
1.JVM調優
新增文件TOMCAT_HOME/bin/setenv.sh以下語句,具體數值視狀況而定。
參數詳解
- -Xms JVM初始化堆內存大小
- -Xmx JVM堆的最大內存
- -Xss 線程棧大小
- -XX:PermSize JVM非堆區初始內存分配大小
- -XX:MaxPermSize JVM非堆區最大內存
建議和注意事項:
-Xms和-Xmx選項設置爲相同堆內存分配,以免在每次GC 後調整堆的大小,堆內存建議佔內存的60%~80%;非堆內存是不可回收內存,大小視項目而定;線程棧大小推薦256k.
32G內存配置以下:
2.關閉DNS反向查詢
在<Connector port="8080" 中加入以下參數
3.優化tomcat參數(使用APR)
<Listener className="org.apache.catalina.core.AprLifecycleListener" />
<Connector port="8000" protocol="org.apache.coyote.http11.Http11AprProtocol" connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8"
acceptCount="500"
enableLookups="false"
maxThreads="400"
executor="tomcatThreadPool"/>
<Executor name="tomcatThreadPool" namePrefix="req-exec-" maxThreads="1000" minSpareThreads="50" maxIdleTime="60000" />
修改系統當前open files的大小
ulimit -a 能夠查看
默認是1024
文件系統最大可打開文件數:cat /proc/sys/fs/file-max
一、 在vi /etc/security/limits.conf文件中設置最大打開文件數 添加:
* soft nofile 65535
* hard nofile 65535
重啓機器 用ulimit -a 查看 是否生效