博客
关于我
.net socket在win2008下的吞吐性能报告
阅读量:446 次
发布时间:2019-03-06

本文共 1990 字,大约阅读时间需要 6 分钟。

对于.net socket的性能问题,似乎MS也没有象WCF一样出个详细的报告,在很多人的使用情况来看性能方面并不理想。如果你比较关注这方面的东西,那这个测试的报告应该可以给你帮助对.net socket性能方面有个更多的了解。如果你担心.net socket的性能是否满足游戏服务端或应用网关的需要,以下测试结果相信也可以给到你一个明确的答案。

测试简述

为了更接近实际应用情况,测试流程 主要如下:数据接收->协议分析->数据反序列化成协议消息对象->消息对象分发->构建应答对象->序列化成协议数据 ->发送;而整个测试流程只缺少逻辑处理,不同应用逻辑处理存在差异,导致损耗也不一样所以并没有归纳到测试里去.测试用例分别有:1)高连接高并 发,2)低连接密集并发,3)状态广播等三种情况.

测试硬件如下:

  • 服务器采用E1230 V2版的至强CPU,8G内存和WIN2008R2的操作系统
  • 测试客户端则使用了三台配置低的台式机,2G内存和WIN2003操作系统

由于网络环境和测试客户端配置问题,并没进行极端的压力模拟

测试1

这个测试主要有三种情况,分别是10000连接,20000连接,30000连接;每个连接每秒向服务器发送一个请求,服务器接收请求后进行处理分发并进行应答

发请请求内容:

Register register = new Register();    register.UserName="henryfan";    register.EMail ="henryfan@msn.com";

应用答内容:

User user= new User();    user.Name = "henryfan";    user.EMail = "henryfan@msn.com";    user.City = "guangzhou";    user.Counrty = "china";    user.ID = 2324;    user.Age = 45;    user.BirthDay = 45454545;    user.Enabled = true;    user.FData = 4454.45f;    user.DData = 34343242.242;

三种情况的CPU,内存,网络等资源状况:

 

测试2

这个测试主要是针对连接相对比较少,但交互量比较大的应用如游戏.测试分别是1000,2000和3000连接三种情况,每个连接向服务端发出一个请求,服务端接收处理后进行应答,客户端得到应答后马上进入一下次请求.
发送请求内容:
Get get = new Get();
应答内容:
GetResponse response = new GetResponse();    response.User = new User();    response.User.Name = "henryfan";    response.User.EMail = "henryfan@msn.com";    response.User.City = "guangzhou";    response.User.Counrty = "china";    response.User.ID = 2324;    response.User.Age = 45;    response.User.BirthDay = 45454545;    response.User.Enabled = true;    response.User.FData = 4454.45f;    response.User.DData = 34343242.242;
三种情况的CPU,内存,网络等资源状况:

测试3

连接广播测试,这种在游戏场景中比较多,就是一个玩家状态变化后通知相邻的玩家,这种情况的数据交互非常大;以下测试是针对500连接的状态广播,连接每秒转发两次状态变更,服务器把变更信息转发给其他499个连接,其消息转发总量是每秒50W条.

转发信息如下:

Po postion = new Po();    Point point = client.GetPoint();    postion.Type = client.GetClientType();    postion.X = Convert.ToInt16(point.X);    postion.Y = Convert.ToInt16(point.Y);

CPU,内存,网络等资源状况:

以上测试并没有通过1比1的IO来达到50W的消息转发,从测试数据来看发送50W消息所使用发送IO大概是1W多来进行处理,因为同时多个消息发向一个连接,可以把消息进行合并处理来缓解IO所带的压力.

转载地址:http://uhtfz.baihongyu.com/

你可能感兴趣的文章
08-03 细分构建机器学习应用程序的流程-流程简介
查看>>
B-概率论-条件概率
查看>>
191107
查看>>
191120
查看>>
191123
查看>>
第4章 字符串、数组和特殊矩阵
查看>>
0608-nn和autograd的区别
查看>>
MYSQL 数据库结构优化
查看>>
leetcode 一些算法题及答案
查看>>
spring 整合 ActiveMQ
查看>>
PHP 取前一天或后一天、一个月时间
查看>>
Kafka 分布式的,基于发布/订阅的消息系统
查看>>
Spring Bean的加载
查看>>
Web笔记(一) Web 简介与开发环境搭建
查看>>
Java基础回顾-缓冲流
查看>>
JSONPath小试牛刀之Snack3
查看>>
更强的 JsonPath 兼容性及性能测试
查看>>
利用 Solon-web 框架写一个 Hello World
查看>>
Solon Ioc 的注解对比Spring及JSR330
查看>>
Solon 1.2.12 发布,新的惊喜
查看>>