.NET Core百万设备连接服务和硬件需求测试

2019 年 5 月 12 日 DotNet

(给DotNet加星标,提升.Net技能


转自:smark
cnblogs.com/smark/p/10846422.html

随着物联网的普及,服务应用将面对大量物联设备处理;早期.NET在通讯上的处理能力一直给人的印像并不怎样,但.NET Core经历过大量的优化后在各个模块的处理性能都有着比较出色的提升,针对网络方向的处理模块也有着显著的提升。


以下主要测试.NET Core在不同连接数据并发下的资源吏用情况,用于评估在不同数量连接上服务的处理能力和硬件配置的需求。


测试描述


分别以200,10万,50万,100万不同连接数下接收数据包和响应的资源使用情况,200连接情况下通过响应请求方式进行高吞吐压测,后面则模拟设备每10秒发送一个数据包。


发送数据如下:

000000123,0002123,00001234,20190430093022,01,020


以上简单地模拟一个设备信息,主要包括ID,座标,时间和状态信息等,服务端接收后分解消息并返回。服务端处理代码如下:


public override void SessionReceive(IServer server, SessionReceiveEventArgs e)
{
base.SessionReceive(server, e);
var stream = e.Stream.ToPipeStream();
while (stream.TryReadLine(out string line))
{
string[] properties = line.Split(',');
stream.WriteLine(line);
e.Stream.Flush();
}
}


测试环境


  • 操作系统


window 2008 server


  • 运行环境


dotnet core 2.1


  • 硬件资源


CPU E3-1230V2 16G内存 10Bb网络


  • 测试工具


Tcp TCPBenchmarks


https://github.com/IKende/TCPBenchmarks


200连接



在小连接的情况其吞吐能力还是非常出色的,在这台PC上达到30万rps的情况还没完全把CPU跑满。


10万连接



测试结果来看,平均并发在10000RPS;大部分请求都能在5ms内响应完成,而程序大部分工作时间CPU在10%以内,内存占用大概700MB。


50万连接



测试结果来看在50万在线的时候,平均并发在100000RPS;大部分请求同样在5ms内响应完成,程序大部分工作时间的CPU在20%以内,内存占用大概在3.5G


100万连接



100万在线的时候,平均并发在100000RPS;大部分请求同样在100ms内响应完成,程序大部分工作时间的CPU在40%以内,内存占用大概在7-9G.不过这次测试的延时相对比较高,由于负载量的情况测试端也会引起延时的问题,所以导致整体延时比较高。


总结


以上测试的服务器的CPU比较旧,已经是6年前的老产品,但在这个CPU的支持下运行100万连接处理也不算存在压力。


其主要原因还是整体的RPS并不高,当在100万连接的情况吞吐值在10万RPS;这样也可以说明在网络服务中占CPU资源的是请求的响应量而不是在线的连接数,不过当在线连接数比较多的情况还是需要占用大量的内存;所以在制是定硬件规划的时候可以针对在线连接数和请求量进行一个结合规划。


推荐阅读

(点击标题可跳转阅读)

一步步完成迷你版的ASP.NET Core框架

C# 8.0两个有趣的新特性以及gRPC

树莓派也跑 Docker 和 .NET Core


看完本文有收获?请转发分享给更多人

关注「DotNet」加星标,提升.Net技能 

好文章,我在看❤️

登录查看更多
0

相关内容

.NET 框架(.NET Framework) 是由微软开发,一个致力于敏捷软件开发、快速应用开发、平台无关性和网络透明化的软件开发平台。
FPGA加速系统开发工具设计:综述与实践
专知会员服务
63+阅读 · 2020年6月24日
【北京大学】面向5G的命名数据网络物联网研究综述
专知会员服务
35+阅读 · 2020年4月26日
深度神经网络实时物联网图像处理,241页pdf
专知会员服务
76+阅读 · 2020年3月15日
【Google】利用AUTOML实现加速感知神经网络设计
专知会员服务
28+阅读 · 2020年3月5日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
94+阅读 · 2019年12月4日
深度神经网络模型压缩与加速综述
专知会员服务
127+阅读 · 2019年10月12日
在K8S上运行Kafka合适吗?会遇到哪些陷阱?
DBAplus社群
9+阅读 · 2019年9月4日
【边缘计算】边缘计算面临的问题
产业智能官
17+阅读 · 2019年5月31日
亿级订单数据的访问与存储,怎么实现与优化?
码农翻身
16+阅读 · 2019年4月17日
.NET Core 环境下构建强大且易用的规则引擎
免费云真机测试 | 让您的应用完美适配 Android Oreo
引力空间站
3+阅读 · 2018年2月2日
前端高性能计算(4):GPU加速计算
前端大全
7+阅读 · 2017年10月26日
Spark的误解-不仅Spark是内存计算,Hadoop也是内存计算
一个人的企业安全建设之路
FreeBuf
5+阅读 · 2017年7月7日
Accelerated Methods for Deep Reinforcement Learning
Arxiv
6+阅读 · 2019年1月10日
Arxiv
12+阅读 · 2018年9月5日
Feature Selection Library (MATLAB Toolbox)
Arxiv
7+阅读 · 2018年8月6日
Arxiv
8+阅读 · 2018年2月23日
Arxiv
5+阅读 · 2017年7月23日
VIP会员
相关资讯
在K8S上运行Kafka合适吗?会遇到哪些陷阱?
DBAplus社群
9+阅读 · 2019年9月4日
【边缘计算】边缘计算面临的问题
产业智能官
17+阅读 · 2019年5月31日
亿级订单数据的访问与存储,怎么实现与优化?
码农翻身
16+阅读 · 2019年4月17日
.NET Core 环境下构建强大且易用的规则引擎
免费云真机测试 | 让您的应用完美适配 Android Oreo
引力空间站
3+阅读 · 2018年2月2日
前端高性能计算(4):GPU加速计算
前端大全
7+阅读 · 2017年10月26日
Spark的误解-不仅Spark是内存计算,Hadoop也是内存计算
一个人的企业安全建设之路
FreeBuf
5+阅读 · 2017年7月7日
相关论文
Top
微信扫码咨询专知VIP会员