最近在项目中负责Tomcat高并发优化方案写一写新得。

优化1)tomcat默认的并发是75,可以启用线程池根据生产环境硬件设定线程池大小。

  <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"

maxThreads="150" minSpareThreads="40"/>

     并在使用时引用线程池。

  并发在150左右     

优化2)tomcat7及之前的版本默认采用BIO,启用NIO模式(NIO与BIO差距自行脑补)

<Connector executor="tomcatThreadPool"

port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"

connectionTimeout="20000"

redirectPort="8443" />

经过这次优化后250的并发量一般是没问题

优化3)APR模式,因为实际生产环境大部分在linux下,所以直说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开机自启动

在/etc/rc.local(或者/etc/rc.d/rc.local)中加入如下一下 /opt/apache/bin/apachectl -k start

查看是否正常启动:ps -ef | grep httpd

经过APR优化后并发量轻松破300

-----------------------------华丽的分割线------------------------------------------------------------

网卡会成为tomcat吞吐量的瓶颈,下面方法是建议优化linux配置方案

1. 修改/etc/sysctl.cnf文件,在最后追加如下内容:  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. 保存退出,执行sysctl -p生效

经过网卡层的优化,tomcat的吞吐量轻松提升200-300

--------------------------------华丽的分割线----------------------------------------------------------------

优化JVM这是少不了的一层。jvm的主要优化GC内存管理、设置堆、栈大小。需要根据实际的生产情况进行设置,以下仅仅是举例,jvm调优本身就是一门深技术

在%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'

-------------------------------华丽的分割线-----------------------------------------------------------------------------

建议:我们在优化的过程中应该多测试,不能仅靠只言片语,我们应该用数据分析总结结论。

END

参考地址

http://wenku.baidu.com/link?url=IWluBNhmZVtnY3zvQBSHbI18gmItJc1wM8ExsYAcLznE1_zWnQID99HATHuiYmBl1PCcVV5rdeXBZttkPcwmMZM95m-aTBgdSMD7Hb2u1ZG

转载于:https://www.cnblogs.com/nunuAction/p/6424711.html

tomcat高并发配置相关推荐

  1. tomcat高并发配置调优

    最近部署的tomcat,里面放了一个apk提供给测试人员测试,而有一天压测的时候,他们一致反馈下载不了,结果查看日志才发现如下错误:[html] view plain copy INFO: Maxim ...

  2. TOMCAT 高并发配置

    参考:http://my.oschina.net/u/593721/blog/146146  JVM配置如下: JAVA_OPTS="$JAVA_OPTS -server -Xmn1024M ...

  3. Tomcat高并发设置

    Tomcat高并发配置 解决方法 增加tomcat连接数 在配合做压力测试的时候,有时候提高并发数的时候 莫名的出现服务器卡顿现象,服务器拒绝连接,前端出现502 Bad Gateway等错误信息,而 ...

  4. mysql性能调优与架构设计_了解架构设计远远不够!一文拆解 Tomcat 高并发原理与性能调优

    来源 | 码哥字节 上帝视角拆解 Tomcat 架构设计,在了解整个组件设计思路之后.我们需要下凡深入了解每个组件的细节实现.从远到近,架构给人以宏观思维,细节展现饱满的美.关注「码哥字节」获取更多硬 ...

  5. 了解架构设计远远不够!一文拆解 Tomcat 高并发原理与性能调优

    来源 | 码哥字节 上帝视角拆解 Tomcat 架构设计,在了解整个组件设计思路之后.我们需要下凡深入了解每个组件的细节实现.从远到近,架构给人以宏观思维,细节展现饱满的美.关注「码哥字节」获取更多硬 ...

  6. tomcat高并发与优化

    tomcat的server.xml配置文件说明: server.xml配置 <Connectorport="8080"protocol="HTTP/1.1" ...

  7. tomcat高并发的配置

    以下内容来源于互联网,具体出处不详 据说服务器运行TOMCAT+JDK环境能负载到动态1W的并发,贴上他的配置,以后有机会在测试! java 环境配置: export JAVA_OPTS=" ...

  8. tomcat mysql如何优化_Tomcat+Mysql高并发配置优化讲解

    1.Tomcat优化配置 (1)更改Tomcat的catalina.bat 将java变成server模式,增大jvm的内存,在文件开始位置增加 setJAVA_OPTS=-server -Xms10 ...

  9. java_opts=quot;-server,tomcat高并发的配置

    据说服务器运行TOMCAT+JDK环境能负载到动态1W的并发,贴上他的配置,以后有机会在测试! java 环境配置: export JAVA_OPTS="-server -Xms8g -Xm ...

最新文章

  1. 一键安装lamp之php插件
  2. html5 javascript 事件练习3键盘控制练习
  3. 中科创星投资云游九州,布局时空大数据
  4. Cissp-【第2章 资产安全】-2021-1-21(186页-204页)
  5. 获取android屏幕大小
  6. C++ leetCode 判断一个整数是否为回文数 9. 回文数 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
  7. 《Orange’s 一个操作系统的实现》3.保护模式7-特权级转移(通过调用门转移目标段-无特权级转换)...
  8. pyemd实现EMD
  9. ubuntu16.04下FastDFS+Nginx分布式文件系统
  10. 【转】jvm内存结构
  11. 对于elemnet-ui的el-upload的使用总结(移除上传文件判断,action等问题)
  12. 2022-2028全球与中国无线电远程单元市场现状及未来发展趋势
  13. 解决iOS 12.4 (16G77), which may not be supported by this version of Xcode
  14. 新年计算机语言祝福语,新春祝福语
  15. 一键还原的GHO文件夹打开方法(转载)
  16. Android方向传感器
  17. 浏览器下载集合(最新版本)
  18. AdMob广告变现:新增开屏广告
  19. 微信公众号文章信息(阅读量、在看、点赞数)获取
  20. 比较两条曲线的相似程度

热门文章

  1. codeforces 706B B. Interesting drink(二分)
  2. 新生儿信息管理系统升级说明
  3. 服务器cpu,内存正常, 部分网站打不开,提示死锁,应用程序池回收就正常,如何解决?...
  4. 让你省写大量重复代码的方法 使用PropertyInfo类 反射获取类 的类型 .
  5. 转载--让搜索引擎优化(SEO)更有效 CSS+DIV标签命名规范
  6. feign一个接口多个方法_spring cloud 建一个服务消费者client-feign(最好用这种方式)...
  7. 5点击换gif_工具:GIF动态图片制作小课堂,开课啦!
  8. P1083 借教室(差分+二分)
  9. Gartner APM 魔力象限技术解读——全量存储? No! 按需存储?YES!
  10. 通过Serverless技术降低微服务应用资源成本