Fork me on GitHub

tomcat并发数

Tomcat的最大并发数是可以配置的,实际运用中,最大并发数与硬件性能和CPU数量都有很大关系的。更好的硬件,更多的处理器都会使Tomcat支持更多的并发。

  Tomcat默认的HTTP实现是采用阻塞式的Socket通信,每个请求都需要创建一个线程处理,当一个进程有500个线程在跑的话,那性能已经是很低很低了。Tomcat 默认配置的最大请求数是150,也就是说同时支持150个并发。具体能承载多少并发,需要看硬件的配置,CPU 越多性能越高,分配给JVM的内存越多性能也就越高,但也会加重GC的负担。当某个应用拥有 250 个以上并发的时候,应考虑应用服务器的集群。操作系统对于进程中的线程数有一定的限制:

  1. Windows 每个进程中的线程数不允许超过 2000

  2. Linux 每个进程中的线程数不允许超过 1000

  3. 在Java中每开启一个线程需要耗用1MB的JVM内存空间用于作为线程栈之用,此处也应考虑。

maxThreads="1000" 最大并发数 

minSpareThreads="100"///初始化时创建的线程数

maxSpareThreads="500"///一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。

acceptCount="700"// 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理

 

配置实例:

<Connector port="8080" protocol="HTTP/1.1"   minSpareThreads="100"   maxSpareThreads="500"      maxThreads="1000"   acceptCount="700" 

               connectionTimeout="20000"
               redirectPort="8443" />

posted @ 2017-12-21 17:43  北斗2016  阅读(400)  评论(0编辑  收藏  举报