如何配置Tomcat使用1个以上的CPU?

2024-01-01

我们有一个新的客户端,目前我们正在对具有 100 个并发 http 线程的生产类服务器进行压力测试(使用 Jmeter)。问题是,即使我们有 2 个 Xeon 处理器(每个 CPU 有 4 个核心,总​​共 8 个核心),我只能看到 tomcat 使用 4 个核心,而不是 8 个核心。我相信这 4 个核心只属于 1 个处理器。其他 4 个线程实际上正在休眠。

我从Apache文档中得到的印象是,如果我们有多CPU机器,我们应该配置acceptorThreadCount =“2”:http://tomcat.apache.org/tomcat-6.0-doc/config/http.html http://tomcat.apache.org/tomcat-6.0-doc/config/http.html

我们已将默认连接器更改为 tomcatThreadPool,其中 maxThreads="150" minSpareThreads="4",并将连接器执行器更改为 AcceptorThreadCount="2"。但它仍然只使用 1 个 CPU。

知道如何配置以利用所有核心(或所有 CPU 处理器)吗?


一些随机的想法可以帮助你。

JVM 将在内部进行自己的任务调度。有时,如果 JVM 不认为某个 CPU 负担过重,它可能会保留一些核心用于关键操作。因此,您会看到一些核心正在使用,而其他核心则闲置。

另一种可能性是需要显式设置 CPU 关联性。 在 Unix 中,您可以检查 JVM 已选择使用哪个 CPU任务集命令 http://linux.die.net/man/1/taskset::

taskset -p <pid>

在 Windows 中,打开任务管理器,转到进程选项卡,右键单击进程并选择设置关联性。您可以查看设置要使用的 CPU/核心。

我不知道 Java/Tomcat 中是否有启动参数来控制 CPU 使用率。我相信这应该是在操作系统级别。我也不记得曾经读过有关 JVM 被编码来限制所使用的 CPU/内核数量的信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何配置Tomcat使用1个以上的CPU? 的相关文章

随机推荐