.Net Core Socket 压力测试
.Net Core Socket 压力测试

想起之前同事说go lang写的push service单机可以到达80万连接,于是就想测试下.Net Core能达到多少。简单地写了全异步的服务端和客户端代码(未作任何优化)。测试环境只是笔记本18万连接CPU点26%左右内存点1.2G,目测放到服务器上80万还是有希望。
一、测试代码
服务端:启动TcpListener监听,异步接受客户端连接AcceptTcpClientAsync。连接到达后异步读取客户端数据,收到数据后原封不动发送到客户端。
客户端:启动60个任务,每个任务依次异步连接到服务端,连接后启动数据收发任务,在收发任务中先改送140bytes左右的数据到服务端再读取服务端返回的数据,等待30s(Task.Delay)后循环前端的收发等待步骤。共60000个连接。
数据统计:服务端客户端中都有相应的数据统计,统计数据有:已连接Socket数量、发送的数据包总数、接收数据包数总数。
代码地址:https://github.com/chrishaly/TcpStressTest
二、测试方式
服务端:Windows 10,运行服务程序。
客户端:(1)Windows 10和服务端同一机器(2)Windows Server 2012 R2 - VMWare(3)Windows 7 - VMWare。由于Winodws对连接数有限制需要修改注册表增大连接数HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters下添加DWORD值 MaxUserPort=65534。在客户端主机上运行客户端程序。3个客户端各6万连接只18万连接
三、环境及结果(各进程详情)
|
主机 |
配置 |
Socket连接数 |
CPU占用 |
内存占用 |
|
服务端 |
笔记本i7-4720HQ, 16G内存 |
17.99万 |
19% ~36% |
1.2G |
|
客户端Win 10 |
笔记本i7-4720HQ, 16G内存 |
6万 |
5% |
241M |
|
客户端 Win 2012 |
VMWare 1 CPU 1 Core, RAM 2G |
6万 |
8%左右 |
318M |
|
客户端 Win 7 |
VMWare 1 CPU 4 Core, RAM 2G |
5.99万 |
8%左右 |
258M |
四、遇到的一些问题:主要也就Socket连接数限制,Windows上修改注册表即可。
五、插曲:客户端本来是要用Linux的,先是用了Debian 8.6 x64连接数达到1.6万左右出现了问题,找了下Debian最大连接数ulimit –a没有限制,就没继续找原因了。果断开了Ubuntu Server 16.04 TLS连接也是1.6万左右出现了AddressAlreadyInUse的异常,然后又试了桌面版的Ubuntu 16.04 TLS也有此问题。目的是测试虚拟机太多了另外换一个吧,就用了VMWare Win 7, VMWare Windows Server 2012 R2。Debian、Ubuntu连接数据的问题以后再看。
六、有图有真相: 4个运行窗口左上角那个是服务端

服务进程情况:PID为19944的为服务进程


.Net Core Socket 压力测试的更多相关文章
- loadrunner简单使用——HTTP,WebService,Socket压力测试脚本编写
使用loadrunner进行压力测试主要分两步,第一步是编写脚本(比较重点),第二步执行测试(配置都是在界面上点点就行了,当然我只的是比较简单的,能满足日常需要的),第三步分析结果(这一步比较高深,但 ...
- (转载)loadrunner简单使用——HTTP,WebService,Socket压力测试脚本编写
原文出处:http://ajita.iteye.com/blog/1728243/ 先说明一下,本人是开发,对测试不是特别熟悉,但因工作的需要,也做过一些性能测试方面的东西.比较久之前很简单的用过,最 ...
- .net core 使用ConcurrentTest组件对方法进行压力测试
工欲善其事,必先利其器!在编写服务中首先要有一个好的测试工具,在dontecore下性能测试有BenchmarkDotNet,只需要简单的配置一下就可以对方法的性能进行详细的测试.但有时候需要对不同并 ...
- 使用 WRK 压力测试工具对 ASP.NET Core 的接口进行压力测试
0. 简要介绍 WRK 是一款轻量且易用的 HTTP 压力测试工具,通过该工具我们可以方便地对我们所开发的 WebAPI 项目进行压力测试,并且针对测试的情况返回结果. PS:Wrk 并不能针对测试的 ...
- asp.net core系列 67 Web压力测试工具WCAT
一.介绍 最近搭建了一套CQRS框架,需要在投入开发前,进行必要的压力测试.Web Capacity Analysis Tool (Wcat)是一种轻量级HTTP负载生成工具,主要用于衡量受控环境中 ...
- apache的ab命令做压力测试
1. 最基本的关心两个选项 -c -n 例: ./ab -c 100 -n 10000 http://127.0.0.1/index.php -c 100 即:每次并发100个-n 10000 即: ...
- Nginx网络架构实战学习笔记(五):大访问量优化整体思路、ab压力测试及nginx性能统计模块、nginx单机1w并发优化
文章目录 大访问量优化整体思路 ab压力测试及nginx性能统计模块 ab压力测试及nginx性能统计模块 ab压力测试 nginx性能统计模块 nginx单机1w并发优化 整装待发: socket ...
- 开发 ASP.NET vNext 续篇:云优化的概念、Entity Framework 7.0、简单吞吐量压力测试
继续上一篇<开发 ASP.NET vNext 初步总结(使用Visual Studio 2014 CTP1)>之后, 关于云优化和版本控制: 我本想做一下MAC和LINUX的self-ho ...
- GPS部标监控平台的架构设计(七)-压力测试
部标监控平台的压力测试是部标检测流程的最后一个检测环节,也是最难的,很多送检的企业平台都是卡壳在这一个环节.企业平台面临的问题如下: 1.对于压力测试的具体指标要求理解含糊,只知道是模拟一万辆车终端进 ...
随机推荐
- Jmeter使用_处理响应结果显示乱码
1. 添加BeanShell PostProcessor 输入prev.setDataEncoding("utf-8"); 目的是修改响应数据编码格式为utf-8,保存
- SSO单点登录学习总结(1)——单点登录(SSO)原理解析
SSO的概念: 单点登录SSO(Single Sign-On)是身份管理中的一部分.SSO的一种较为通俗的定义是:SSO是指访问同一服务器不同应用中的受保护资源的同一用户,只需要登录一次,即通过一个应 ...
- 洛谷——P1781 宇宙总统
https://www.luogu.org/problem/show?pid=1781 题目背景 宇宙总统竞选 题目描述 地球历公元6036年,全宇宙准备竞选一个最贤能的人当总统,共有n个非凡拔尖的人 ...
- 洛谷 P1308 统计单词数
P1308 统计单词数 题目描述 一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数. 现在,请你编程实现这一功能,具体要求是:给定 ...
- Microsoft SQL Server Version List(SQL Server 版本)
原帖地址 What version of SQL Server do I have? This unofficial build chart lists all of the known Servic ...
- Android应用开发-广播和服务
广播 广播的概念 现实:电台通过发送广播发布消息,买个收音机,就能收听 Android:系统在产生某个事件时发送广播,应用程序使用广播接收者接收这个广播,就知道系统产生了什么事件. Android系统 ...
- Android BuildConfig:Gradle自定义你的BuildConfig
在很早之前我发布了这篇博客Android BuildConfig.DEBUG的妙用, 提到了Eclipse中通过BuildConfig.DEBUG字段用来调试Log非常好用,但是殊不知在Android ...
- spring与cxf整合配置webservice接口(以jaxws:server的方式配置)
ps:最近项目需要跟其他系统做同步,需要使用webservice来提供接口给其他系统调用:临时抱佛脚赶紧去网上找了下资料,发现用Endpoint的方式发布接口好容易哦:赶紧写了个例子做验证,发布成功. ...
- PatentTips - Method, apparatus and system for instructing a virtual device from a virtual machine
BACKGROUND OF THE INVENTION A virtual machine (VM) may be or include a framework or environment crea ...
- Mrakdonw学习
转载请注明出处:http://blog.csdn.net/cym492224103 什么是Mrakdown 为什么使用Mrakdown 怎样Mrakdown 字体 删除线 字体大小 引用 代码行代码块 ...