影响并发的其他限制因素

Tomcat 的运行模式

BIO(阻塞式的 Socket 通信)模式

Tomcat8 以下版本,默认的 HTTP 实现是采用 BIO 模式,每个请求都需要创建一个线程处理

这种模式下的并发量受到线程数的限制,不大适合高并发,但技术成熟。

每个进程中的线程数受制于操作系统的内核参数设置:

Windows 主机每个进程中的线程数不允许超过 2000
Linux 主机每个进程中的线程数不允许超过 1000
NIO模式(非阻塞式的 Socket 通信)

Tomcat8 以上版本,默认使用的就是 NIO 模式,在性能上高于阻塞式的,每个请求也不需要创建一个线程进行处理,并发能力比前者高。

APR 模式(全称 Apache Portable Runtime)

是 Tomcat 生产环境运行的首选方式。但必须要安装 APR 和 Native,直接启动就支持 APR。

APR 是从操作系统级别解决异步 IO 问题。APR 的本质就是使用 JNI 技术调用操作系统底层的 IO 接口,所以需要提前安装所需要的依赖。

如果操作系统未安装 APR 或者 APR 路径未指到 Tomcat 默认可识别的路径,则 APR 模式无法启动,自动切换启动 NIO 模式。

注:APR 模式可以提升 Tomcat 对静态文件的处理性能,当然也可以采用动静分离。

JVM 调优(tomcat 可以使用的内存)

Tomcat 是运行在 JVM 上的,所以对 JVM 的调优也是非常有必要的

在 Java 中每开启一个线程需要耗用 1MB 的 JVM 内存空间用于作为线程栈之用

tomcat 默认可以使用的内存为128MB,在并发量较大的应用项目中,这点内存是不够的,需要修改 JVM 参数调优

Unix下,在文件{tomcat_home}/bin/catalina.sh的前面,增加如下设置:

JAVA_OPTS=‘-Xms【初始化内存大小】 -Xmx【可以使用的最大内存】’

需要把这个两个参数值调大。例如:JAVA_OPTS=‘-Xms256m -Xmx512m’

表示初始化内存为 256MB,可以使用的最大内存为 512MB

一台主机允许的连接数、线程数、内存大小、硬件性能和 CPU 数量,都会限制实际并发数

并发能力还与应用的逻辑密切相关,如果逻辑很复杂需要大量的计算,那并发能力势必会下降。

如果每个请求都含有很多的数据库操作(或其他中间件的连接),那么对于数据库的性能要求也是非常高的。

对于单台数据库服务器来说,允许客户端的连接数量是有限制的(数据库读写的并发能力)

建议当某个应用拥有 250 个以上并发的时候,应考虑应用服务器的集群


 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值