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

本文通过测试.NET Core在不同数量连接下的资源使用情况,评估了其处理能力和硬件需求。测试结果显示,即使在100万连接的情况下,CPU利用率保持在40%以内,内存占用约7-9GB,且大部分请求能在100ms内响应。结论指出,处理能力主要受RPS影响而非连接数,并建议在规划硬件时结合在线连接数和请求量。
摘要由CSDN通过智能技术生成

(给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连接

816f9f127b453c0dff449bb5c0e2e41c.png

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

10万连接

3f73b947cd1e2fa633a57c3b90c77886.png

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

50万连接

8b3071b74c366522d281572e89bd8533.png

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

100万连接

f6585921a273b0e220592bc7d0a214eb.png

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技能 

0dcffd1402ee5792b79cea7a2b804539.png

好文章,我在看❤️

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值