tomcat高并发配置
最近在項(xiàng)目中負(fù)責(zé)Tomcat高并發(fā)優(yōu)化方案寫一寫新得。
優(yōu)化1)tomcat默認(rèn)的并發(fā)是75,可以啟用線程池根據(jù)生產(chǎn)環(huán)境硬件設(shè)定線程池大小。
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="150" minSpareThreads="40"/>
? ? ?并在使用時(shí)引用線程池。
并發(fā)在150左右? ? ?
優(yōu)化2)tomcat7及之前的版本默認(rèn)采用BIO,啟用NIO模式(NIO與BIO差距自行腦補(bǔ))
<Connector executor="tomcatThreadPool"
?? ? ? ? ? ? ? port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
?? ? ? ? ? ? ? connectionTimeout="20000"
?? ? ? ? ? ? ? redirectPort="8443" />
?
? ? ? 經(jīng)過(guò)這次優(yōu)化后250的并發(fā)量一般是沒問(wèn)題
?
優(yōu)化3)APR模式,因?yàn)閷?shí)際生產(chǎn)環(huán)境大部分在linux下,所以直說(shuō)Linux下的安裝
?
(1)先安裝gcc ? (沒有yum命令先安裝yum,sudo apt -get install yum)
yum -y install gcc
?(2)?按裝apr和apr-util
? ? ? ?下載地址http://apr.apache.org/download.cgi
apr-1.3.2.tar.gz安裝:
tar zxvf apr-1.3.2.tar.gz ?
cd apr-1.3.2 ?
./configure ?--prefix=/usr/local/apr
make ?
make install?
?
apr-util-1.3.2.tar.gz 安裝:
tar zxvf apr-util-1.3.2.tar.gz ?
cd apr-util-1.3.2 ?
./configure --prefix=/usr/local/apr-util
make ?
make install ?
?
(3)安裝pcre 下載地址https://sourceforge.net/projects/pcre/files/pcre/
?
unzip?-o?pcre-8.33.zip?#?cd?pcre-8.33?
#?./configure?--prefix=/usr/local/pcre
make?
make install
?
(4)安裝apache? http://httpd.apache.org/download.cgi
tar zxvf?httpd-2.4.25.tar.tz
./configure --prefix=/usr/local/apache --enable-modules=all --enable-mods-shared=all --enable-proxy --enable-proxy-connect --enable-proxy-ftp --enable-proxy-http --enable-proxy-ajp --enable-proxy-balancer --enable-rewrite --enable-status --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre
make
make install
?
(5)
?
配置apache開機(jī)自啟動(dòng)?
在/etc/rc.local(或者/etc/rc.d/rc.local)中加入如下一下?/opt/apache/bin/apachectl?-k?start?
查看是否正常啟動(dòng):ps?-ef?|?grep?httpd
?
?
經(jīng)過(guò)APR優(yōu)化后并發(fā)量輕松破300
-----------------------------華麗的分割線------------------------------------------------------------
網(wǎng)卡會(huì)成為tomcat吞吐量的瓶頸,下面方法是建議優(yōu)化linux配置方案
?
1.?修改/etc/sysctl.cnf文件,在最后追加如下內(nèi)容:??net.core.netdev_max_backlog?=?32768?net.core.somaxconn?=?32768?net.core.wmem_default?=?8388608?net.core.rmem_default?=?8388608?net.core.rmem_max?=?16777216?net.core.wmem_max?=?16777216?net.ipv4.ip_local_port_range?=?1024?65000?net.ipv4.route.gc_timeout?=?100?net.ipv4.tcp_fin_timeout?=?30?net.ipv4.tcp_keepalive_time?=?1200?net.ipv4.tcp_timestamps?=?0?net.ipv4.tcp_synack_retries?=?2?net.ipv4.tcp_syn_retries?=?2?net.ipv4.tcp_tw_recycle?=?1?net.ipv4.tcp_tw_reuse?=?1?net.ipv4.tcp_mem?=?94500000?915000000?927000000?net.ipv4.tcp_max_orphans?=?3276800?net.ipv4.tcp_max_syn_backlog?=?65536??
2.?保存退出,執(zhí)行sysctl?-p生效
經(jīng)過(guò)網(wǎng)卡層的優(yōu)化,tomcat的吞吐量輕松提升200-300
--------------------------------華麗的分割線----------------------------------------------------------------
優(yōu)化JVM這是少不了的一層。jvm的主要優(yōu)化GC內(nèi)存管理、設(shè)置堆、棧大小。需要根據(jù)實(shí)際的生產(chǎn)情況進(jìn)行設(shè)置,以下僅僅是舉例,jvm調(diào)優(yōu)本身就是一門深技術(shù)
在%TOMCAT_HOME%/bin/catalina.sh的開頭添加上,
declare -x JAVA_OPTS='-Xms1024M?-Xmx1024M?-Xss512k?-XX:+AggressiveOpts?-XX+UseBiasedLocking?-XX:PermSize=64M?-XX:MaxPermSize=300M?-XX:+DisableExplicitGC?-XX:MaxTenuringThreshold=31?-XX:+UseConcMarkSweepGC?-XX:+UseParNewGC??-XX:+CMSParallelRemarkEnabled?-XX:+UseCMSCompactAtFullCollection?-XX:LargePageSizeInBytes=128m??-XX:+UseFastAccessorMethods?-XX:+UseCMSInitiatingOccupancyOnly?-Djava.awt.headless=true'
-------------------------------華麗的分割線-----------------------------------------------------------------------------
建議:我們?cè)趦?yōu)化的過(guò)程中應(yīng)該多測(cè)試,不能僅靠只言片語(yǔ),我們應(yīng)該用數(shù)據(jù)分析總結(jié)結(jié)論。
?
END
?
?參考地址
http://wenku.baidu.com/link?url=IWluBNhmZVtnY3zvQBSHbI18gmItJc1wM8ExsYAcLznE1_zWnQID99HATHuiYmBl1PCcVV5rdeXBZttkPcwmMZM95m-aTBgdSMD7Hb2u1ZG
?
轉(zhuǎn)載于:https://www.cnblogs.com/nunuAction/p/6424711.html
總結(jié)
以上是生活随笔為你收集整理的tomcat高并发配置的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: German Companies
- 下一篇: 到你是你玩互联网还是互联网玩了你