我正在尝试在Ubuntu 12.10(32位)上运行Jetty 9。我在JDK 1.7.0_40中使用的JVM。我在使用RestLib的服务器上设置了休息服务。休息服务是一种POST方法,只接收数据并且不对其进行处理并响应成功。
我想看看Jetty9服务器对给定资源的最大负载是多少。我有一个8 GB内存的Intel i5处理器盒。我已经设置了一个Jmeter来在localhost设置中测试这个休息。我知道这不可取,但我想知道这个数字(只是出于好奇)。
当我运行JMeter来测试这个POST方法时,身体中有1 MB的有效载荷数据,我得到了大约20个(100个用户)的吞吐量。
我使用iperf开始测量带宽
iperf -c 127.0.0.1 -p 8080
------------------------------------------------------------
Client connecting to 127.0.0.1, TCP port 8080
TCP window size: 167 KByte (default)
[ 3] local 127.0.0.1 port 44130 connected with 127.0.0.1 port 8080
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 196 MBytes 165 Mbits/sec
对于我来说165 MB的数字看起来非常小,但这是一个观察结果。
我在启用StatisticsHandler的情况下运行服务器并且正在观察请求平均时间。还使用nmon监视工具观察系统资源。
CPU使用率约为20%(总体),4GB可用内存和服务器中的线程数(使用jconsole监控)大约200(我在start.ini文件中指定了最大线程数为2000)。 / p>
Jmeter配置为反复轰击。
我在nmon工具中观察了本地环回接口中的网络使用情况 30 MB。这与之前引用的iperf数据一致。
我尝试使用weblogic(使用JDK 1.6)进行相同的实验,并且在lo界面中使用了近250 MBps。我在sysctl配置中明确禁用了tcp sync cookie,以避免由于系统将测试视为DOS攻击而造成的限制。
请帮我理解这个数字。我在配置中遗漏了什么。 n / w似乎是一个限制因素,但由于它是一个环回接口,因此没有Weblogic案例证明的物理限制。
请帮助我理解我在Jetty 9案件中做错了什么。
此外,我经常在Jetty9日志中收到此警告
警告:oejh.HttpParser:qtp14540840-309:解析异常:java.lang.IllegalStateException:HttpChannelOverHttp @ 1dee6d3关闭后数据太多{r = 1,a = IDLE,uri = - }
答案 0 :(得分:0)
这个问题在这个邮件列表主题上得到了有效回答:
http://dev.eclipse.org/mhonarc/lists/jetty-users/msg03906.html