当前位置: 首页 > news >正文

提高tomcat的并发能力

1、Apache + Tomcat 结合起来用Apache负责静态页面,Tomcat负责动态页面,同时减少connectionTimeout的时间,以应对并发量大线程回收来不及的情况。

2、压力过大的问题,可以做负载均衡,一个TOMCAT无论如何也不可能担当如此多的线程负载,而且JVM过大,其内存管理成本将显著加大。2G的内存,做3-4个TOMCAT实例(512RAM*4),更为科学合理。

3、数据库连接池,不少人,都推荐使用C3P0,能提高访问数据库的并发性能好几倍。

4、采用Tomcat集群可以最大程度的发挥服务器的性能,可以在配置较高的服务器上部署多个Tomcat,也可以在多台服务器上分别部署Tomcat,Apache和Tomcat整合的方式还是JK方式。经过验证,系统对大用户量使用的响应方面,Apache+3Tomccat集群> Apache+2Tomcat集群 > Apache集成Tomcat > 单个Tomcat。并且采用Apache+多Tomcat集群的部署方式时,如果一个Tomcat出现宕机,系统可以继续使用,所以在硬件系统性能足够优越的情况下,需要尽量发挥软件的性能,可以采用增加Tomcat集群的方式。

5、1. 设置MPM(Multi Processing Modules多道处理模块)。ThreadPerChild,这个参数用于设置每个进程的线程数,在Windows环境下默认值是64,最大值是1920,建议设置为100-500之间,服务器性能高的话值大一些,反之小一些。MaxRequestPerChild表示每个子进程能够处理的最大请求数。这个参数的值更大程度上取决于服务器的内存,如果内存比较大的话可以设置为很大的参数,否则设置一个较小的值,建议值是3000.
2. 关闭DNS和名字解析 HostnameLookups off
3. 打开UseCanonicalName模块 UseCanonicalName on
4. 关闭多余模块 一般来说,不需要加载的模块有,mod_include.so、mod_autoindex.so、mod_access.so、mod_auth.so.
5. 打开KeepAlive支持
KeepAlive on, KeepAliveTimeout 15 MaxKeepAliveRequests 1000
根据实际经验,通过Apache和Tomcat集群的方式提高系统性能的效果十分明显,这种方式可以最大化的利用硬件资源,通过多个Tomcat的处理来分担单Tomcat时的压力。

web server允许的最大连接数还受制于操作系统的内核参数设置,通常Windows是2000个左右,Linux是1000个左右。

相关文章:

  • 对Oracle数据库坏块的理解
  • Delphi 中Format的字符串格式化使用说明(转)
  • 经典问题回忆
  • iOS设计指南
  • lnmp环境安装(1)-linux(centos)系统安装
  • 基于MyBatis3.0.6的基本操作介绍
  • hdu4407 n(n=400000)个数,a[i]=i,m个询问及更改(m=1000),更改某个位置的数,询问区间与这个数互质数的和:容斥/离线...
  • 血的教训---工作中注意的事项(未完)
  • Changing Vendor on Purchase Order
  • printStream 和printWriter区别
  • java 程序执行原理
  • 【转】 java中HashMap详解
  • android eclipse写layout文件失效问题解决
  • js调用百度地图接口
  • 《C语言及程序设计》程序阅读——查找和排序
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • ECS应用管理最佳实践
  • Magento 1.x 中文订单打印乱码
  • MySQL数据库运维之数据恢复
  • ng6--错误信息小结(持续更新)
  • node 版本过低
  • Swift 中的尾递归和蹦床
  • vue数据传递--我有特殊的实现技巧
  • 山寨一个 Promise
  • 移动端唤起键盘时取消position:fixed定位
  • NLPIR智能语义技术让大数据挖掘更简单
  • Semaphore
  • ​力扣解法汇总946-验证栈序列
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • (3)选择元素——(14)接触DOM元素(Accessing DOM elements)
  • (8)STL算法之替换
  • (顺序)容器的好伴侣 --- 容器适配器
  • (一)Neo4j下载安装以及初次使用
  • (原)本想说脏话,奈何已放下
  • (转)Unity3DUnity3D在android下调试
  • .[hudsonL@cock.li].mkp勒索加密数据库完美恢复---惜分飞
  • .NET “底层”异步编程模式——异步编程模型(Asynchronous Programming Model,APM)...
  • .net 开发怎么实现前后端分离_前后端分离:分离式开发和一体式发布
  • .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction)
  • .NET开源全面方便的第三方登录组件集合 - MrHuo.OAuth
  • /var/log/cvslog 太大
  • [ vulhub漏洞复现篇 ] AppWeb认证绕过漏洞(CVE-2018-8715)
  • [ 环境搭建篇 ] 安装 java 环境并配置环境变量(附 JDK1.8 安装包)
  • []C/C++读取串口接收到的数据程序
  • [2016.7 test.5] T1
  • [20161214]如何确定dbid.txt
  • [BZOJ] 2006: [NOI2010]超级钢琴
  • [C#]C# winform部署yolov8目标检测的openvino模型
  • [DEBUG] spring boot-如何处理链接中的空格等特殊字符
  • [EWS]查找 文件夹
  • [JavaEE] 线程与进程的区别详解
  • [Linux]——彻底学通权限
  • [luoguP3159] [CQOI2012]交换棋子(最小费用最大流)
  • [NOSQL] Redis介绍
  • [PHP]严格类型