Aru*_*ung 3 java performance web-services jmeter jboss5.x
我创建了一个客户端和服务器的Web服务.我想过做性能测试.我尝试了一个带有样本测试计划的jmeter来执行它.高达3000请求jboss处理了请求但是当请求超过3000时,一些请求未被处理(在无法打开连接的意义上:连接被拒绝).我必须在同一时间进行更改以处理超过10000个请求.要么是jboss问题还是系统吞吐量?
jmeter配置:300个螺纹,1秒加速和10个循环.
系统(服务器配置):Windows 7,4G RAM
我必须在同一时间进行更改以处理超过10000个请求
Tomcat中的1万个并发请求(我相信它在JBoss中使用)是相当多的.在典型设置中(使用阻塞IO连接器),每个HTTP连接需要一个线程.这对于普通的JVM来说太过分了.在64位服务器计算机上,一个线程需要1个MiB(检出-Xss参数).而你只有4 GiB.
此外,上下文切换的数量将破坏您的性能.您需要数百个内核才能有效地处理所有这些连接.如果您的请求是I/O或数据库绑定 - 您将在其他地方看到瓶颈.
话虽如此,你需要一种不同的方法.尝试非阻塞I/O或异步servlet(从3.0开始)或...向外扩展.默认情况下,Tomcat可以处理100-200个并发连接(合理的默认值),并且排队的连接数量相似.以上所有内容都被拒绝,您可能正在体验这一点.
我想到了两个常见的问题。
首先,如果您以普通用户身份在 Linux 上运行 JBoss,如果您没有编辑limits.conf 文件,您可能会遇到“打开的文件太多”。参见https://community.jboss.org/thread/155699。每个打开的套接字都算作 Linux 的“打开文件”,因此操作系统可能会因此阻止您的连接。
其次,传入连接的最大线程池大小默认为 200。这限制了并发请求的数量,即同时进行的请求。如果您让 jmeter 执行 300 个线程,则 jboss 连接器线程池应该更大。您可以在 jboss-web.sar/server.xml 中的 jboss6 中找到它。在元素中查找“maxThreads”:http ://docs.jboss.org/jbossweb/latest/config/http.html 。
200 是单核 CPU 的建议最大值。在此之上,上下文切换开始产生过多的开销,就像 Tomasz 所说的那样。所以对于生产使用,双核只增加到 400,四核增加到 800,等等。
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           13890 次  |  
        
|   最近记录:  |