Tomcat线程模型

安吉·辛格迪亚(Ankit Singodia)

很好奇地找到了我在tomcat上部署的应用程序可以满足的最大并发请求数。

我知道的:

在tomcat配置中,有一些参数可以帮助我,例如:

  1. acceptCount-当所有可能的请求处理线程都在使用中时,传入连接请求的最大队列长度。队列已满时收到的任何请求都将被拒绝。默认值为100。

  2. MaxConnections-在任何给定时间服务器将接受并处理的最大连接数。达到此数目后,服务器将接受但不处理另一个连接。

我想知道的是:

  1. 以上参数足以知道我的应用程序可以处理的“并发”请求的最大数量吗?

  2. 假设最大连接数为200,则意味着如果有200个并发请求进入,则将产生200个线程(每个请求1个)。
    然后,这些都是CPU密集型请求/操作。那么生成200个线程是否会降低性能呢?我相信,如果请求/操作占用大量CPU,那么从JVM派生出来的最大线程数应该可以补充内核数。(例如16)。

幽灵猫

很好奇地找到了我在tomcat上部署的应用程序可以满足的最大并发请求数。

您不能不考虑许多参数,例如:

  • 硬件马力(多少个CPU,什么样的CPU,多少内存)
  • 工作量的实际特征

换句话说:您的问题不可能有通用/通用的答案。如果您真的担心确切的细节,那么进行实验是唯一的方法。

在功能强大的最新服务器上运行的“混合类型”工作负载应能够轻松地并行处理200个线程。但是,当然,如果每个请求导致成千上万的IOPS,或需要1个小时的实际CPU时间,那么并行执行10个请求可能会使您失望。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章