随着物联网的普及,服务应用将面对大量物联设备处理;早期.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. 聊一聊跨域,Vue向Django请求数据的一些问题
  2. AMP328音频放大器
  3. Selenium3自动化测试——15.调用Javascript进行滚动条控制
  4. 关于BFD(双向转发检测)开发的总结
  5. 小米宋强:生态化大数据平台的深度应用实践
  6. 20201028 《计算感知》第4节课 笔记
  7. qduoj - 小Z的集训队考验(拓扑排序+动态规划)
  8. win10鼠标灵敏度怎么调_和平精英灵敏度怎么设置才最合适 调最适合自己用的
  9. java生成不重复随机数_生成不重复随机数 java
  10. Selenium驱动Firefox浏览器
  11. LeetCode刷题(32)
  12. oracle rac 距离限制,Oracle Extended Distance Clusters (Oracle 扩展距离集群 - 异地RAC)
  13. 第八届“图灵杯”NEUQ-ACM程序设计竞赛个人赛——C题 上进的凡凡
  14. yum 安装mysql 5.0_CentOS 通过 yum 安装 Mysql 5.0
  15. 承认吧,你就是不行!
  16. 社交网络分析的 R 基础:(一)初探 R 语言
  17. 电脑快捷键横屏变竖屏_电脑屏幕横屏与竖屏之间怎么来回切换?
  18. plsql报错:Not logged on
  19. android坐标计算器,函数科学计算器算坐标
  20. Ambiguous method overloading for method ****** 异常的解决办法

热门文章

  1. 没有内幕交易:Coinbase完成了比特币现金调查
  2. 价值为王,市场需要降温
  3. 2.7-egrep及bash中的变量
  4. graylog - collecting Failed and Accepted logins for your SSH
  5. 从零到百亿互联网金融架构发展史---架构变迁
  6. 1Python进阶强化训练之装饰器使用技巧进阶
  7. Redis命令参考简体中文版 2.4.1
  8. ogr2ogr: Export Well Known Text (WKT) for one feature to a CSV file
  9. 转:iFire:玩聚 SRBacks 自定义脚本及样式表
  10. 关闭Delphi的RTTI