|
--ps:IM服务器的测试我没有测试过,所以能做的就只是给你找了个一篇关于IM服务器性能测试的文章,希望能有所帮助:)
----此文转载 版权所有 :)
对公司自行开发的IM的服务器压力测试今天完成了。总的来说,测试结果令人满意。
IM服务器配置如下:
CPU:至强3G双核 x 1
内存:1G
硬盘:140G SISC硬盘
IM服务之外的其余服务:
IM & 客户端 自动更新服务
公司网站web服务
公司邮件服务
测试方式:
3台计算机并发模拟客户登陆及聊天。登陆包括查询与下载好友列表、好友资料、群组列表、群组资料;聊天测试方式为,每个模拟客户端每1秒向好友列表中的一个好友发送一条文本消息。所有好友消息均为服务器转发,因为如果使用P2P方式的话,一旦P2P通道建立,数据便不再经过服务器,对IM服务器的压力不产生影响,因此,便没有测试P2P方式下的压力数据,而选择测试服务器转发方式下的压力数据。
最终的测试结果为:
服务器转发模式下,大约能同时支持3000人登陆,4865人同时聊天(服务器崩溃前最近一次读数)。
光登陆就超过2000,令人非常满意,而且4865人同时聊天,这还是在未进一步优化的情况下获得的数据。接近5000的数据,令人很是高兴。
最后,IM服务器的架构简述:
采用4IOCP。其中一个TCP IOCP用作管理员客户端连接,以及将来的服务器聚合扩展;一个TCP IOCP用于用户客户端登陆登出,以及数据补包;一个UDP IOCP用于心跳、P2P打洞处理、中转聊天的文字消息(包含系统表情);一个UDP IOCP用于中转聊天的非文本数据(比如图像)。4个IOCP间的桥接及系统日志、管理员日志、用户日志、插件日志均采用队列处理。系统所有内存使用均有专门的内存管理器负责管理。至于UDP为什么也要采用IOCP,原因则是,虽然普通的UDP已经很快了,但是,每次发送,接收仍均需要阻塞等待。虽然每次阻塞的时间很短,但积少成多,在大量连接的情况下,仍然会比较可观。而采用IOCP,则就是为了经量减小每次阻塞的时间。
最后,关于系统资源占用:
CPU:4%-9%。即使达到4865用户同时在线聊天,CUP占用率也一直处于4%-9%
内存:IM服务器刚刚启动时,占用内存7M多,当4865用户同时采用服务器中转方式在线聊天时,达到190M。 |
|