Tomcat的性能与最大并发(1000)
2016-09-07 18:24
253 查看
当一个进程有500个线程在跑的话,那性能已经是很低很低了。Tomcat 默认配置的最大请求数是 150,也就是说同时支持 150 个并发,当然了,也可以将其改大。
当某个应用拥有 250 个以上并发的时候,应考虑应用服务器的集群。
具体能承载多少并发,需要看硬件的配置,CPU越多性能越高,分配给JVM的内存越多性能也就越高,但也会加重GC的负担。
操作系统对于进程中的线程数有一定的限制:
Windows 每个进程中的线程数不允许超过2000
Linux 每个进程中的线程数不允许超过1000
另外,在Java中每开启一个线程需要耗用1MB的JVM内存空间用于作为线程栈之用。
Tomcat的最大并发数是可以配置的,实际运用中,最大并发数与硬件性能和CPU数量都有很大关系的。更好的硬件,更多的处理器都会使Tomcat支持更多的并发。
Tomcat默认的HTTP实现是采用阻塞式的 Socket 通信,每个请求都需要创建一个线程处理。这种模式下的并发量受到线程数的限制,但对于Tomcat 来说几乎没有BUG存在了。
Tomcat还可以配置NIO方式的Socket通信,在性能上高于阻塞式的,每个请求也不需要创建一个线程进行处理,并发能力比前者高。但没有阻塞式的成熟。
这个并发能力还与应用的逻辑密切相关,如果逻辑很复杂需要大量的计算,那并发能力势必会下降。如果每个请求都含有很多的数据库操作,那么对于数据库的性能也是非常高的。
对于单台数据库服务器来说,允许客户端的连接数量是有限制的。
并发能力问题涉及整个系统架构和业务逻辑。
系统环境不同,Tomcat版本不同、JDK版本不同、以及修改的设定参数不同。并发量的差异还是满大的。
当某个应用拥有 250 个以上并发的时候,应考虑应用服务器的集群。
具体能承载多少并发,需要看硬件的配置,CPU越多性能越高,分配给JVM的内存越多性能也就越高,但也会加重GC的负担。
操作系统对于进程中的线程数有一定的限制:
Windows 每个进程中的线程数不允许超过2000
Linux 每个进程中的线程数不允许超过1000
另外,在Java中每开启一个线程需要耗用1MB的JVM内存空间用于作为线程栈之用。
Tomcat的最大并发数是可以配置的,实际运用中,最大并发数与硬件性能和CPU数量都有很大关系的。更好的硬件,更多的处理器都会使Tomcat支持更多的并发。
Tomcat默认的HTTP实现是采用阻塞式的 Socket 通信,每个请求都需要创建一个线程处理。这种模式下的并发量受到线程数的限制,但对于Tomcat 来说几乎没有BUG存在了。
Tomcat还可以配置NIO方式的Socket通信,在性能上高于阻塞式的,每个请求也不需要创建一个线程进行处理,并发能力比前者高。但没有阻塞式的成熟。
这个并发能力还与应用的逻辑密切相关,如果逻辑很复杂需要大量的计算,那并发能力势必会下降。如果每个请求都含有很多的数据库操作,那么对于数据库的性能也是非常高的。
对于单台数据库服务器来说,允许客户端的连接数量是有限制的。
并发能力问题涉及整个系统架构和业务逻辑。
系统环境不同,Tomcat版本不同、JDK版本不同、以及修改的设定参数不同。并发量的差异还是满大的。
maxThreads="1000" 最大并发数 minSpareThreads="100"///初始化时创建的线程数 maxSpareThreads="500"///一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。 acceptCount="700"// 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理
相关文章推荐
- Myeclipse2016 部署webapp 至 tomcat 上出现 “There are no resources that can be added or removed from the server”
- tomcat basedir docBase path workdir
- tomcat 设置管理员账号和密码
- 运行tomcat下的start.bat脚步,显示后立马消失
- tomcat 添加虚拟目录
- tomcat 允许访问目录文件
- maven创建web项目并自动部署到tomcat(jetty)
- Linux下Tomcat 在控制台输出日志信息
- eclipse自带tomcat插件,发布web工程的位置
- nginx+tomcat+JDK 实例
- 让Eclipse的TomcatPlugin支持Tomcat 8.x
- linux下重启tomcat,日志查看
- Tomcat发布项目的简单方式
- tomcat 进程意外退出
- tomcat配置的环境变量catalina.home和catalina.base 区别
- Android+Servlet图片上传 (Tomcat+jsp)
- 一台机子同时启动两个相同版本的tomcat
- tomcat替换.class文件并没有生效的原因(失效原因)
- 用tomcat部署上java web项目后在地址里输入地址不加项目名
- Resource Path Location Type Target runtime MyEclipse Tomcat v7.0 is not defined