Eventmachine的性能测试

[quote="Reactor pattern的实现目前有如下几个"]
Implementations

The ADAPTIVE Communication Environment (C++)
xSocket (Java)
Apache MINA (Java)
POE (Perl)
Twisted (Python)
EventMachine (Ruby)[/quote]

JE中有篇文章介绍了Eventmachine,请参见[url]http://dustin.iteye.com/blog/223664[/url]

服务端:
硬件:DELL1950,2*4CPU,8G内存
操作系统:
[quote]# uname -a
Linux PerfTestApp3 2.6.9-67.ELsmp #1 SMP Wed Nov 7 13:58:04 EST 2007 i686 i686 i386 GNU/Linux
[/quote]

服务端EM的代码:
require 'rubygems'
require 'eventmachine'

module Echo
def receive_data data
send_data data+"-Agent : EventMachine"
puts data
end
end

EM.run {
EM.start_server "0.0.0.0", 3080, Echo
}

服务端单进程方式启动

客户端:
Loadrunner直接请求,代码如下:

Action()
{
web_reg_find("Text=Hello!",
"Search=All",
LAST);

web_custom_request("EM", "Method=POST",
"URL=http://10.2.226.39:3080/",
"Body=Hello!" ,
LAST);

return 0;
}


TPS最高是1200,不稳定,如图:

[img]/upload/attachment/72655/19a0ea04-834b-339b-86cf-dbfadd0e15a5.jpg[/img]


TPS1200时的系统资源如下:
[quote]top - 14:43:38 up 25 days, 3:55, 3 users, load average: 0.13, 0.25, 0.16
Tasks: 112 total, 1 running, 111 sleeping, 0 stopped, 0 zombie
Cpu(s): 4.1% us, 2.1% sy, 0.0% ni, 93.8% id, 0.0% wa, 0.1% hi, 0.0% si
Mem: 8306064k total, 7201996k used, 1104068k free, 236304k buffers
Swap: 2031608k total, 0k used, 2031608k free, 6028396k cached

PID USER PR NI %CPU TIME+ %MEM VIRT RES SHR S COMMAND
13011 alisoft 25 0 20 315:19.60 6.9 1543m 561m 51m S java
9565 root 16 0 20 2:38.57 0.1 15628 10m 2148 S ruby
9146 root 16 0 9 1:15.67 0.0 8860 2356 1844 S sshd [/quote]

服务器的并发连接情况如下:

[quote]# netstat -an |grep 3080
tcp 0 0 0.0.0.0:3080 0.0.0.0:* LISTEN
tcp 0 292 10.2.226.39:3080 10.2.226.15:45249 ESTABLISHED
tcp 0 292 10.2.226.39:3080 10.2.226.15:45251 ESTABLISHED
tcp 0 1 10.2.226.39:3080 10.2.226.15:45260 LAST_ACK
tcp 0 292 10.2.226.39:3080 10.2.226.15:45256 ESTABLISHED
tcp 0 0 10.2.226.39:3080 10.2.226.15:45268 ESTABLISHED
tcp 0 292 10.2.226.39:3080 10.2.226.15:45277 ESTABLISHED
tcp 0 292 10.2.226.39:3080 10.2.226.15:45278 ESTABLISHED
tcp 0 0 10.2.226.39:3080 10.2.226.15:45279 ESTABLISHED
# netstat -an |grep 3080 | grep ESTABLISHED -c
11
# netstat -an |grep 3080 | grep ESTABLISHED -c
9
# netstat -an |grep 3080 | grep ESTABLISHED -c
9
# [/quote]

可见平均10个并发。

[size=x-large][color=darkred]再做一个单EventMachine实例支持最大并发连接数测试[/color][/size]

还是上面那个Eventmachine实例,客户端的并发从50开始,每分钟递增50个,看最大的并发数到多少还可以支撑。

结果是250并发的时候就降下来了,然后失去响应。看图:


[img]/upload/attachment/72665/456cc822-6a1a-3b5c-a4b9-bdb643b2ba4c.jpg[/img]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值