java - jboss 无法处理超过 3000 个请求

标签 java performance web-services jmeter jboss5.x

我创建了客户端和服务器的 Web 服务。我想到了做性能测试。我尝试使用带有示例测试计划的 jmeter 来执行它。最多 3000 个请求 jboss 处理了请求,但是当请求超过 3000 个时,一些请求没有被处理(在无法打开连接的意义上:连接被拒绝)。我必须在哪里进行更改以同时处理超过 10000 个请求。是 jboss 问题还是系统吞吐量?

jmeter 配置:300 个线程,1 秒加速和 10 次循环。

系统(服务器配置):Windows 7、4G RAM

最佳答案

Where i have to make the changes to handle more than 10000 request at the same time

10000 并发请求在Tomcat中(我相信在JBoss中使用)是相当多的。在典型设置(使用阻塞 IO 连接器)中,每个 HTTP 连接需要一个线程。这对于普通的 JVM 来说太多了。在 64 位服务器机器上,一个线程需要 1 MiB(查看 -Xss 参数)。而您只有 4 GiB。

此外,number of context switches会扼杀你的表现。您将需要数百个核心才能有效处理所有这些连接。如果您的请求是 I/O 或数据库绑定(bind) - 您会在其他地方看到瓶颈。

话虽如此,您需要一种不同的方法。要么尝试非阻塞 I/O 或异步 servlet(自 3.0 起),要么……向外扩展。默认情况下,Tomcat 可以处理 100-200 个并发连接(合理的默认值),并且排队的连接数量也差不多。上面的所有内容都被拒绝,您可能正在经历这种情况。

另见

关于java - jboss 无法处理超过 3000 个请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11707609/

相关文章:

java - 我需要的任务的有效解决方案

ruby - 如何在 Ruby 中实现 RESTful 服务

java - 获取swing标签文本并将其传递给父类

java - 检查数组中的字符串是否按字母顺序排列

java - Eclipse 巨大的 CPU 峰值

xml - 下载和解析 XML 的最有效方式

c# - 通过C#应用程序访问西门子S7-1200

python - 使用 Python 调用 REST 服务

java - 如何在java中将st上标为数字1?

java - 如何在 SpringDM 中将 bundleContext 引用传递给 bean