随着物联网的普及,服务应用将面对大量物联设备处理;早期.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 TCPBenchmarkshttps://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资源的是请求的响应量而不是在线的连接数,不过当在线连接数比较多的情况还是需要占用大量的内存;所以在制是定硬件规划的时候可以针对在线连接数和请求量进行一个结合规划。

原文地址:https://www.cnblogs.com/smark/p/10846422.html

.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com 

stream测试内存_.net core百万设备连接服务和硬件需求测试相关推荐

  1. .net core百万设备连接服务和硬件需求测试

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

  2. python gui测试工具_在Suse10下尝试dogtail(一个python的GUI测试工具..

    你的位置: 技术文档 -> Python -> 文档详情 在Suse10下尝试dogtail(一个python的GUI测试工具.. 零 简介: DogTail是一个用python写的,自动 ...

  3. php7 测试数据库_达梦数据库PHP连接测试

    完整实验步骤: 1.apache安装 2.php安装 3.连接达梦数据库 1.源码安装apache apache的源码安装包: httpd-2.4.43.tar.gz 安装apache源码包需要先安装 ...

  4. 可以测试流放之路伤害的软件,测试平台及细节一览 - 《流放之路》国服硬件需求测试:低配也能续写ARPG传奇 - 超能网...

    测试平台.场景说明 测试平台 测试平台配置主要分为两套,第一套配置为Skylake平台基础搭建的ASUS MAXIMUS VIII GEN(Z170)主板,处理器为Intel Core i7-6700 ...

  5. 微型计算机用什么显卡,《绝地求生:大逃杀》全系主流显卡大型评测之显卡需求测试...

    看完了此前关于<绝地求生:大逃杀>的介绍,是不是想要立马入手<绝地求生:大逃杀>这款游戏来一把愉快的"吃鸡"?不急,或许看完我们下面的硬件需求测试之后再玩也 ...

  6. mysql 测试环境过一段时间就连接不上

    mysql 测试环境过一段时间就连接不上 说明: 测试环境是阿里云RDS mysql同步过去的用的是innobackupex恢复的,设置skip-grant-table免密码登录,版本和阿里云rds ...

  7. 使用BeetleX的TcpBenchmark工具进行百万设备模拟测试

    其实TCP测试的工具有很多,那BeetleX工具所提供的特点又是什么呢?如果你需数十万的请求或模拟上百万的设备连接,那这个工具相信可以满足你的需要!工具是基于BeetleX的基础功能扩展,支持多IP绑 ...

  8. K1 Power Linux上Stream测试内存带宽

    K1 Power Linux上Stream测试内存带宽 本篇文章介绍在K1 Power Linux上理论内存带宽结算,实测内存带宽方法,衡量服务器的内存带宽水平.需要说明的是,对于Scale UP的P ...

  9. 多设备monkey测试工具_基于Tkinter GUI操作

    V1.0版本 先看下效果吧: 简单的介绍下: 1.设备列表区域:用于展示当前连接的所有设备 2.monkey参数区域:用于显示即将执行的monkey参数 3.日志区域:用于显示必要日志(其实没啥卵用, ...

最新文章

  1. DB_Links创建际删除
  2. lstm原理_Mamp;DL | LSTM:遗忘门、记忆门、输出门
  3. Mybatis返回Map
  4. 微信公众平台-杂项:小程序导航
  5. pyjion python3.6_pyjion python3.6
  6. 07-霸道的Oracle内存使用
  7. skhynix nvme toolbox怎么选择磁盘_为啥我的NVMe固态硬盘跑分比别人少一半!?莫慌,2张图完美解决...
  8. (一)1-4Python运算符
  9. Clean-Code: 有意义的名字
  10. Linux下make -j加快编译速度
  11. 如何用 latex 排版日文 (xelatex)
  12. 遗传算法之TSP问题
  13. mysql中dint_MySQL基础篇(1)SQL基础
  14. 学习pathon的几大步骤
  15. 谈小米内忧外患的困境
  16. EasyExcel解析excel(合并单元格和未合并)
  17. 金融 python 招聘,滴滴、度小满金融python工程师社招面经
  18. 压缩包文件如何将密码找回来
  19. 关于 Android 平台开发相关的有哪些推荐书籍?
  20. 《小王子》中的经典语录(中英文对照)

热门文章

  1. 比特币现金可能成为市值第四大最大的加密货币
  2. 比特币现金诞生一周年,未来发展瞄上了IPFS技术
  3. 加密货币支付卡公司与BCH达成合作
  4. 在Windows上编译UEFI SDK 2018/OVMF的方法
  5. jbpm人工终止的开发
  6. JMeter运行通过Chrome打开的website
  7. spring集成Apache的ActiveMQ
  8. 数据库笔记1:数据库基本语句
  9. 有关指针的数据类型的小结
  10. 系统提供的按钮和图标