本实验用于测试ESFramework网络通信框架服务端引擎的性能,测试程序使用ESFramework 4.0版本。

一.准备工作

测试的机器总共有3台,都是普通的PC,一台作为服务器,两台作为客户端。

作为服务器是PC配置如下:

操作系统:Windows Server 2003 Enterprise Edition SP2

CPU:Pentium Dual-Core CPU E5400 @ 2.70GHz

内存:2G

二.测试策略

本实验所采用的策略是这样的:

(1)每个客户端实例首先与服务器建立N个TCP连接,然后依次在每个TCP连接上发送一个36字节的消息。遍历一次完毕后,等待(Sleep)M毫秒,再进行下一轮遍历发送。

(2)服务端接收到消息后,解析消息,然后累加消息的个数。

(3)客户端统计已发消息的总数,并计算上一秒发送的请求数。

(4)服务端统计已接收消息的总数,并计算上一秒接收的请求数。

三.测试过程

1.测试方案一:连接总数3000,每轮发送间隔100ms

(1)在作为服务器的PC上启动服务端。

  

(2)在作为客户端的两台PC上分别运行一个客户端实例。每个客户端实例设定连接数1500,每轮发送的间隔为100。

(3)如此,服务端的总的连接数为3000,以下是运行一段时间后的截图:  

   

  在该测试过程中,服务端的每秒处理的消息数量在26000 ~30000之间波动,而CPU持续在80%以上。

另外,在客户端的PC上通过NetLimitter可以看到每个连接上发出的数据流量:

  

2.测试方案二:连接总数6000,每轮发送间隔300ms

将方案一启动的各程序全部关掉,重头再来一次。

(1)在作为服务器的PC上启动服务端。

   

(2)在作为客户端的两台PC上分别运行一个客户端实例。每个客户端实例设定连接数3000,每轮发送的间隔为400。

(3)如此,服务端的总的连接数为6000,以下是运行一段时间后的截图:   

   

  在该测试过程中,服务端的每秒处理的消息数量在14000 ~18000之间波动,而CPU持续在65%以上。

四.测试结论

除此两种方案的测试以外,我们还进行了其它方案的测试,比如设置更小的连接数和更小的发送间隔,或设置更大的连接数和更大的发送间隔。测试反映,这台作为服务器的PC能承载的最佳并发连接数在4000左右,此时,服务器的吞吐量可以达到最大(每秒处理30000个左右的消息)。当连接数进一步增加时,吞吐量会降下来。最佳并发连接数和最大吞吐量的值与服务器机器的配置密切相关。

五.测试程序

本文末会提供测试程序的压缩包下载。在压缩包内附带了测试的服务端和客户端程序,有兴趣的朋友可以在自己的服务器上做更多的策略测试。在自己运行测试时,要注意以下几点:

(1)服务端最好运行在一台单独的机器上。如果客户端也运行在服务端所在的机器上,则会严重地影响服务端的吞吐量。

(2)合理地设置客户端的连接数和发送时间间隔。

(3)客户端运行的机器的操作系统对tcp连接数可能有最大值限制(有的是三千多),如果遇到这种系统,而单个客户端实例的连接数的设定又大于这个限制值,则会导致后续的tcp连接失败。若发生这种情况,请关闭客户端并重启,然后设定较小的连接数,再次测试。可以多开几个客户端实例,来增加连接数。

(4)如果服务器上有防火墙软件,可能会影响测试结果,最好关闭服务器上的防火墙进行测试。

  

  ESFramework 4.0 性能测试程序下载。

任何问题,请联系sky.zhuwei@163.com。

敬请了解:

ESFramework通信框架     OMCS网络语音视频框架     MFile语音视频录制组件    MCapture语音视频采集组件  StriveEngine轻量级通信引擎    OAUS 自动升级系统

ESFramework网络通信框架 4.0 性能测试相关推荐

  1. ESFramework网络通信框架介绍之(2)――网络通信消息NetMessage

    ESFramework网络通信框架与元数据 较之C++而言,.NET是一个更加"动态"的平台,其动态能力建立在反射机制之上,而反射的基础是"元数据". 上文已经 ...

  2. ESFramework网络通信框架介绍之(3)――消息处理器和处理器工厂

    一.ESFramework网络通信框架与消息处理器 无论是服务端还是客户端,都需要对接收到的消息进行处理,在ESFramework网络通信框架中,处理消息的组件称为消息处理器,所有的消息处理器都实现了 ...

  3. ESFramework网络通信框架介绍之(5)――消息分派器IMessageDispatcher

    从2004年7月开始,就一直从事N层C/S架构的服务端的开发,时至今日,慢慢的积累了一些开发经验,ESFramework网络通信框架体系便是这些经验的总结.ESFramework网络通信框架这是一套完 ...

  4. 网络通信应用开发利器!—— ESPlus —— ESFramework通信框架的增强库

    概述 ESPlus 是基于网络通信框架ESFramework通信框架通信框架的增强库.为了更贴近实际应用,加快网络通信系统的开发,ESPlus在ESFramework通信框架原生功能的基础上,进行了再 ...

  5. 高性能udp服务器架构,优秀的国产高性能TCP/UDP/HTTP开源网络通信框架——HP

    介绍 HP-Socket是国人开发的一套高性能的TCP/UDP/HTTP网络通信框架,包含了服务端.客户端以及Agent组件,可用于各种不同应用场景的通信系统,并且提供了C/C++.C#.Delphi ...

  6. hudo as3 网络通信框架

    发布个去年写的 hudo as3 网络通信框架 支持sgs 0.9.7 http://code.google.com/p/hudo/

  7. 蚂蚁集团网络通信框架 SOFABolt 功能介绍及协议框架解析 | 开源

    简介:开源网络通信框架 SOFABolt 首次线上直播文字回顾. ,有趣实用的分布式架构频道. 回顾视频以及 PPT 查看地址见文末.欢迎加入直播互动钉钉群 : 30315793,不错过每场直播. 大 ...

  8. Mina网络通信框架

    认识 Mina Apache Mina Server 是一个网络通信应用框架,与 Netty 出自同一作者,Netty 借鉴了部分 Mina 的设计思路. Mina 主要是对基于 TCP/IP.UDP ...

  9. HP-Socket v5.4.4 发布,高性能跨平台网络通信框架

    百度智能云 云生态狂欢季 热门云产品1折起>>>   HP-Socket提供以下几类组件,详细内容请参考<HP-Socket网络通信框架开发指南>: Server:基于I ...

最新文章

  1. 实测实量数据表格_施工现场全套实测实量操作图解,值得收藏!
  2. Vim YouCompleteMe 安装配置
  3. Neo4j:找到两个纬度/经度之间的中间点
  4. orcale 基本查询(1)
  5. 2020品牌情商指数报告
  6. 国外稳定免费php,国外免费php空间 稳定
  7. crond服务及用法
  8. (转)献给迷茫中的量化工作者
  9. 面试必问——你有什么问题问我吗
  10. python调用子函数_类中的Python调用函数
  11. android实战开发记账本App,android开发实战-记账本APP(一)
  12. loop variable ‘numerator‘ creates a copy from type ‘const std::string‘ [-Wrange-loop-construct]
  13. python调用 微信,向好友发送微博热搜榜
  14. java中考勤管理_JAVA人事员工考勤管理(含论文)源码
  15. 用户态和内核态的切换耗费时间的原因
  16. Oracle 存储过程 字符串拼接 SQL注入的问题
  17. Django静态文件的管理
  18. 西安翻译学院东区计算机教室,西安翻译学院:200间教室跨进智慧时代
  19. Spine动画显示错乱问题
  20. 【博客611】linux路由表机制

热门文章

  1. 风景这边独好的AI大年,百度亚马逊等巨头第一季度成绩单怎么样?
  2. CSDN 2022 届春季校园招聘火热启动!
  3. 近六成员工强烈支持,携程将推出“3+2 ”工作模式,一周三天到岗两天在家办公...
  4. 百架无人机“失控撞楼”,程序员写的 Bug?
  5. 【Fiddler学习】Fiddler抓包HTTPS请求和手机抓包
  6. 15.3. REST
  7. 工资高低由什么决定?(面试时如何谈工资?工作中怎样做才能不断涨工资?)...
  8. NSUserDefaults删除整个plist文件
  9. 存储过程--分页与C#代码调用
  10. 关于struts1的配置