5

我正在编写一个在多核硬件上运行在 Tomcat 中的 java 应用程序。应用程序执行算法并将答案返回给用户。问题是,即使我同时运行两个请求,tomcat 进程也最多使用一个 CPU 内核。
据我了解,Tomcat 中的每个请求都在单独的线程中执行,JVM 应该在单独的 CPU 内核上运行每个线程。

限制 JVM 或 Tomcat 使用不超过一个内核的问题可能是什么?

提前致谢。

4

4 回答 4

0

所有处理器管理都将由服务器本身负责。如果您传递两个请求,则不必使用两个 CPU。

于 2010-05-18T06:36:10.157 回答
0

您确定正在创建两个线程吗?您可以简单地打印线程名称作为快速测试。

如果您在独立应用程序中运行算法会发生什么?

于 2010-05-18T09:24:44.147 回答
0

您是否正在执行任何会强制串行执行的同步块/方法?server.xml 中的 tomcat 连接器配置控制请求线程池 - 但默认值为 200 个线程,IIRC。

于 2010-05-18T17:15:45.813 回答
-1

这是在 tomcat http://tomcat.apache.org/tomcat-5.5-doc/balancer-howto.html中进行负载平衡的过程

我认为这也适用于 Tomcat 6,因为他们提到平衡器 webapp 随 tomcat 5.0 及更高版本一起提供。

于 2010-05-21T03:00:40.920 回答