我试图在Ubuntu12.10 (32位)上运行Jetty 9。我在JDK 1.7.0_40中使用的JVM。我在我的服务器上设置了一个使用RestLib的rest服务。rest服务是一个POST方法,它只接收数据,不对其进行处理,并响应成功。
我想看看Jetty9服务器在给定资源下的最大负载是多少。我有一个带有8GB内存的英特尔i5处理器盒。我已经在localhost设置中设置了一个Jmeter来测试这个rest。我知道这是不可取的,但我想知道这个号码(只是出于好奇)。
当我运行JMeter来测试这个包含1MB有效负载数据的POST方法时,我得到了大约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的空闲内存和服务器中的线程数(使用j控制台进行监视)约为200 (我在start.ini文件中指定最大线程数为2000 )。
Jmeter被配置成反复轰炸。
我在nmon工具中的本地回送接口中观察到网络的使用情况,它大约是30 MB。这与前面引用的iperf数据是一致的。
我在weblogic(使用JDK1.6)上进行了同样的实验,它在lo接口中使用了将近250个MBps。我在sysctl配置中显式地禁用了tcp同步cookie,以避免由于系统认为测试是DOS攻击而造成的限制。
请帮我理解这个数字。我是不是在配置中遗漏了什么。在这里,n/w似乎是一个限制因素,但由于它是一个回送接口,因此没有任何物理限制,Weblogic案例证明了这一点。
请帮助我理解我在9号码头的案件中做错了什么。
而且,我经常在Jetty9日志中收到这个警告。
警告:oejh.HttpParser:qtp14540840-309:解析异常: java.lang.IllegalStateException:关闭后过多的数据对于HttpChannelOverHttp@1de6d3{r=1,a=IDLE,uri=-}
发布于 2013-10-18 20:44:13
这个问题在这个邮件列表线程上得到了有效的回答:
http://dev.eclipse.org/mhonarc/lists/jetty-users/msg03906.html
https://stackoverflow.com/questions/19457253
复制相似问题