java - 相同的 Jetty 代码,不同的线程数

标签 java multithreading jetty redhat

我们在两台服务器上运行相同的 Jetty 服务,但发现这两个服务创建的线程数量不同(50 个线程与约 100 个线程)。

两台服务器都在 RedHat5 上运行相同的 Java 代码(它们的内核略有不同)。然而,其中一台服务器上的 Jetty 创建的线程比另一台服务器多。怎么可能?

最佳答案

线程计数是动态的,取决于许多因素。

根据硬件差异(CPU 核心数量、网络接口(interface)数量等)、内核差异、Java 差异、负载差异、活跃用户数、活跃线程数,您在任何一点看到的线程数可能会有很大差异。连接计数、每秒事务数、是否存在外部依赖项(例如数据库)、如何完成异步处理、如何完成异步 I/O、http/2 与 http/1 的使用、websocket 的使用,甚至 ${jetty .base} 配置差异。

至于您看到的计数,50 与 100,对于生产服务器来说确实很小。中等繁忙系统上的许多生产服务器可以使用 500 个 (java) 线程,而在非常繁忙的商品系统上,它可以在 5,000 个以上的范围内。即使在专用硬件(如 Azul 系统设备)上,具有多个 Activity 网络接口(interface)的 90,000 多个线程范围也并非闻所未闻。

关于java - 相同的 Jetty 代码,不同的线程数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29850958/

相关文章:

java - Resteasy Client 线程安全吗?

java - 为 Apache Storm 编写集成测试

java - 在 richfaces 中使用自定义 skin.properties 文件时无法找到 skinning.css 和 packed.css

java - “Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1;”-使用@Scheduled方法调用删除时

java - Jetty 没有出现在 jcmd 中

java - 如何释放已关闭以进行垃圾收集的执行程序服务的内存?

java - 同步方法调用其他同步方法

python - 更简单的 Python 并发构建 block ?

java - 使用 Camel Jetty 进行基本身份验证

jetty - 如何在 Jetty 7 中启用响应时间日志记录