Tomcat并发

来源:互联网 发布:网络转换器网通转电信 编辑:程序博客网 时间:2024/05/21 10:57

http://blog.sina.com.cn/s/blog_4b5bc01101014s7t.html


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集群的方式。

 

、1. 设置MPM(Multi Processing Modules多道处理模块)。ThreadPerChild,这个参数用于设置每个进程的线程数,在Windows环境下默认值是64,最大值是 1920,建议设置为100-500之间,服务器性能高的话值大一些,反之小一些。MaxRequestPerChild表示每个子进程能够处理的最大请 求数。这个参数的值更大程度上取决于服务器的内存,如果内存比较大的话可以设置为很大的参数,否则设置一个较小的值,建议值是3000. 
2. 关闭DNS和名字解析  enableLookups  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个左右。

windows xp tomcat    

  1. windows 2003 tomcat    
  2. windows 2003 单apache 单tomcat    
  3. windows 2003 apache tomcat负载均衡    
  4. windows 2003 apache tomcat负载均衡 多机dns轮询    
  5. ubuntu apache tomcat负载均衡    
  6. ubuntu nginx tomcat均衡    

   一些并发数据对比,  服务器配置8G内存,2.0GHz 8核CPU:    

  1. windows 2003下,apache配置到3000线程,是以前配置的极限了。    
  2. 改成linux后,压力测试下apache到5000并发。    
  3. 再把apache换成nginx后,轻松突破1.5万并发。    
  4. 当然,linux下还有一个很重要的问题,必须修改内核参数才能提高系统并发。    
  5. 目前系统下单机每日千万级别的访问量是非常轻松的(当然还跟应用本身有关)