提高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个左右。

时间: 2024-12-15 02:46:05

提高tomcat的并发能力的相关文章

tomcat 高并发配置 与优化

公司的一个服务器使用Tomcat6默认配置,在后台一阵全点击服务器就报废了,查了一下就要是PERMSIZE默认值过小造成(16-64) TOMCAT_HOME/bin/catalina.sh 添加一行:JAVA_OPTS=" -XX:PermSize=64M -XX:MaxPermSize=128m" 问题解决(可能为调用JAR包过多原因)下面是网上看到一些设置 JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=64M -XX

提高服务器性能和并发能力

从哲学上说,消除瓶颈是提高服务器性能和并发能力的唯一途径.如果你能够消除所有的瓶颈,你就能够最大的发挥硬件性能,让系统的性能和并发数到达最佳.采用多线程多核编程,使用事件驱动或异步消息机制,尽量减少阻塞和等待操作(如I/O阻塞.同步等待或计时/超时等).原理:1.多线程多核编程,消除cpu瓶颈.2.采用IOCP或epoll,利用状态监测和通知方式,消除网络I/O阻塞瓶颈.3.采用事件驱动或异步消息机制,可以消除不必要的等待操作.4.如果是Linux,可以采用AIO来消除磁盘I/O阻塞瓶颈.5.在

重构系统的套路-提高并发能力

提高系统并发能力,总结起来有三点:异步,缓存,并行. 异步 比如我们在某段业务逻辑中加了一个同步写kafka的操作,tp99瞬间多了30毫秒,这样在整个监控曲线看起来非常扎眼,于是我们需要将这个同步改成异步. 对于老系统需要在业务进行梳理,如果业务场景中不关心返回值,这样完全可以做成异步. 如果业务关心返回值,比如订单逻辑,很多下游服务需要传入本次主订单ID与下游服务进行连接,这样写主订单就必须变成了一个同步逻辑,但是主要关心的还是这个OrderId,我们可以建立一个OrderId生成器,这样单

提高Django高并发性的部署方案(Python)

方案: nginx + uWSGI 提高 Django的并发性        1. uWSGI :                 uWSGI是一个web服务器,实现了WSGI协议.uwsgi协议.http协议等. uWSGI的主要特点是: 超快的性能              低内存占用              多app管理              详尽的日志功能(可以用来分析app的性能和瓶颈)              高度可定制(内存大小限制,服务一定次数后重启等)         

产品汪需要提高的5点能力

人人都是产品经理,这句话我不知道吐槽了多少次,真的是这样子吗?凭什么你年薪能拿几十万,绝不是天天都天马行空,随便丢一个需求给程序员就完事了,产品经理一定是一个知识领域非常广.综合素质非常高的一个职业.1到2岁的PM在入门时都觉得自己特牛逼,感觉出了公司大门就可以创业去了.事实上,前面等着你的却是血淋淋的教训与逻辑陷阱的坑坑洼洼 经常会在一些文章中看到一些标题党,什么"学会了这些,你就能年薪百万",然后里面都是去讲一些大行业咨询呀,讲一些很远很飘的东西,因此给新人PM的提升是比较虚的,在

tomcat高并发配置

最近在项目中负责Tomcat高并发优化方案写一写新得. 优化1)tomcat默认的并发是75,可以启用线程池根据生产环境硬件设定线程池大小. <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="150" minSpareThreads="40"/>      并在使用时引用线程池. 并发在150左右      优化2)t

异步IO的并发能力:backlog的配置很重要

今天中午正准备完工的时候,发现一个让人抓狂的问题. 一个精简版的AIO应用理论上应该比一个完整版的AIO应用并发能力高一些(因为完整版的事务处理复杂一些),在同一台机器上测试. 但测试结果显示,精简版的并发能力还不如完整版的AIO应用. 花了一个多小时,终于找到原因:原来是backlog的设置不同. 关于网络编程中的backlog参数说明: http://dola.xinfan.org/?p=110 精简版的相关代码: int backlog = 100;  asynServerChannel.

修改Linux内核参数提高Nginx服务器并发性能

当linux下Nginx达到并发数很高,TCP TIME_WAIT套接字数量经常达到两.三万,这样服务器很容易被拖死.事实上,我们可以简单的通过修改Linux内核参数,可以减少Nginx服务器 的TIME_WAIT套接字数量,进而提高Nginx服务器并发性能.   vi /etc/sysctl.conf   增加以下几行: net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_keepalive_time = 1200 net.ipv4.tcp_syncookie

提高您CSS开发能力的技巧集

0. 目录 目录 引言 正文 1 使用not给导航条添加间隔线 2 给body元素增加Line-Height属性 3 任意元素垂直居中 4 逗号分隔的列表 5 在nth-child中使用负数 6 使用svg图标 7 文本显示优化 8 在Pure CSS Sliders中使用max-height 9 初始化box-sizing 10 表格单元格等宽 11 使用Flexbox摆脱各种Margin Hacks 12 给空连接使用属性选择符 声明 1. 引言 原文:github的A collection