c#---Socean.RPC实测[并发量13w][响应时间0.04ms]

简介
请看这里https://www.cnblogs.com/ch00486259/p/11383686.html

前言

经过一段时间的优化,Socean.RPC的性能又提高了一些,不过这差不多是socketAPM模型的极限了,已经很难再提升了。本框架仅仅2000多行代码,无第三方框架引用,在普通PC上测试大约并发量13w、响应时间0.04ms,基本上实现了本框架的最初设计目的----用少量的代码实现一个高性能、高稳定性、高响应速度的RPC框架,不过跟其他RPC框架相比还少了动态代理这一块,先用常规序列化吧,以后应该会加上。

本次测试是在笔记本上运行的,CPU是i5 6200U(双核),测试客户端和测试服务端都是在一台笔记本上,所以并发量肯定比只跑测试服务端低些,测试代码都在github上,有兴趣的同学可以自己下载测试

开始测试

首先是单线程测试,图中可以看到,平均处理量大约2.7W条每秒,响应时间大约0.037ms每条

接着是3个线程测试,平均处理量大约7W条每秒,响应时间大约0.043ms每条(这里之所以测试3线程,主要是因为测试笔记本是双核四线程,还有一个线程是空闲状态,这里模拟的是高负载运行状态,响应速度还是很快的)

最后是30个线程压测,此时基本是满负载测试了,平均处理量大约10W条每秒,响应时间大约0.29ms每条,此时server的CPU使用率大约是30%,client的CPU使用率大约是45%,机器整体的CPU使用率在90%以上,如果测试笔记本只运行server的话,理论上13w条每秒应该是不成问题的

本次测试使用的是双核笔记本进行的,所以并发只能到13w,如果运行在20核(最新的应该是48核了吧)的服务器上,并发到40w每秒是没问题的

项目地址
https://github.com/ch00486259/Socean.Rpc

其他
利用本RPC框架做其他组件能节省很多时间

1.服务网关,rpcserver的messageprocessor支持异步,可以做到每秒10W+的rpc请求透传,路由信息可存于消息的HeaderExtention中,HeaderExtention专为Gateway定制
2.缓存,经过简单的封装即可实现一个简易缓存,配合一致性hash可实现简易分布式功能(单机redis每秒处理量也在10w+,redis的瓶颈应该也是在网络这,双核电脑上rps达到10w+后再想提升是很难了)
3.分布式计算、大数据,由于本框架的高速响应的特点,可用于分布式计算、大数据等高响应速度的场景

原文地址:https://www.cnblogs.com/ch00486259/p/11641215.html

时间: 2025-01-16 22:08:34

c#---Socean.RPC实测[并发量13w][响应时间0.04ms]的相关文章

网站吞吐量和并发量以及响应时间的联系

吞吐量和并发量以及响应时间之间的关系可以理解为高速公路的通行状况: 吞吐量是每天通过收费站的车辆数量(可换算成收费站收取的高速费),并发量是高速公路上的正在形式的车辆数目,响应时间是车速.车辆很少的时候,车速很快,但是收到的费用也很少:随着车越来越多,车速略受影响,但是收到的高速费增加很快:随着车辆继续增加,车速越来越慢,高速公路越来越堵,收费的不增反降:如果车流量继续增加,超过某个值以后,任何偶然因素都将导致高速瘫痪,车辆走不动,费用也收不着了,而高速公路变成了停车场(资源耗尽).

性能测试之QPS、TPS、并发量、系统吞吐量的概念

QPS: 每秒钟处理完请求的次数:具体是指发出请求到服务器处理完成功返回结果. TPS:每秒钟处理完的事务次数,一般TPS是对整个系统来讲的.一个应用系统1s能完成多少事务处理,一个事务在分布式处理中,可能会对应多个请求,对于衡量单个接口服务的处理能力,用QPS比较多. 并发量:系统能同时处理的请求数 RT:响应时间,处理一次请求所需要的平均处理时间 计算关系: QPS = 并发量 / 平均响应时间 并发量 = QPS * 平均响应时间 TPS: (每秒事务处理量(TransactionPerS

c#---Socean.Rpc之EasyProxy

目录 1.高性能RPC框架:Socean.RPC 2.Socean.RPC框架实测 简介 EasyProxy是Socean.RPC的一个动态代理实现,特点是性能高.稳定性好.使用简便 使用入门: 服务端 : 1.定义序列化器和消息处理器 public class RpcSerializer : Socean.Rpc.DynamicProxy.IRpcSerializer { public object Deserialize(string content, Type type) { return

系统吞吐量(TPS)、用户并发量、性能测试概念和公式

系统吞吐量(TPS).用户并发量.性能测试概念和公式 PS:下面是性能测试的主要概念和计算公式,记录下: 一.系统吞度量要素: 一个系统的吞度量(承压能力)与request对CPU的消耗.外部接口.IO等等紧密关联. 单个reqeust 对CPU消耗越高,外部系统接口.IO影响速度越慢,系统吞吐能力越低,反之越高. 系统吞吐量几个重要参数:QPS(TPS).并发数.响应时间 QPS(TPS):每秒钟request/事务 数量 并发数: 系统同时处理的request/事务数 响应时间:  一般取平

系统吞吐量、TPS(QPS)、用户并发量、性能测试概念和公式[转]

PS:下面是性能测试的主要概念和计算公式,记录下: 一.系统吞度量要素: 一个系统的吞度量(承压能力)与request对CPU的消耗.外部接口.IO等等紧密关联.单个reqeust 对CPU消耗越高,外部系统接口.IO影响速度越慢,系统吞吐能力越低,反之越高. 系统吞吐量几个重要参数:QPS(TPS).并发数.响应时间 QPS(TPS):每秒钟request/事务 数量 并发数: 系统同时处理的request/事务数 响应时间:  一般取平均响应时间 (很多人经常会把并发数和TPS理解混淆) 理

提升高并发量服务器性能解决思路

刚刚在网上淘了一个提升高并发量服务器性能解决思路,个人感觉非常不错,给大家分享出来,希望给您有所帮助. 提升高并发量服务器性能解决思路 一个小型的网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构.性能的要求都很简单.随着互联网业务的不断丰富,网站相关的技术经过这些年的发展,已经细分到很细的方方面面,尤其对于大型网站来说,所采用的技术更是涉及面非常广,从硬件到软件.编程语言.数据库.WebServer.防火墙等各个领域都有

系统吞吐量、TPS(QPS)、用户并发量、性能測试概念和公式

PS:以下是性能測试的主要概念和计算公式,记录下: 一.系统吞度量要素: 一个系统的吞度量(承压能力)与request对CPU的消耗.外部接口.IO等等紧密关联.单个reqeust 对CPU消耗越高,外部系统接口.IO影响速度越慢.系统吞吐能力越低,反之越高. 系统吞吐量几个重要參数:QPS(TPS).并发数.响应时间 QPS(TPS):每秒钟request/事务 数量 并发数: 系统同一时候处理的request/事务数 响应时间:  一般取平均响应时间 (非常多人常常会把并发数和TPS理解混淆

[转]系统吞吐量(TPS)、用户并发量、性能测试概念和公式

PS:下面是性能测试的主要概念和计算公式,记录下: 一.系统吞度量要素: 一个系统的吞度量(承压能力)与request对CPU的消耗.外部接口.IO等等紧密关联. 单个reqeust 对CPU消耗越高,外部系统接口.IO影响速度越慢,系统吞吐能力越低,反之越高. 系统吞吐量几个重要参数:QPS(TPS).并发数.响应时间 QPS(TPS):每秒钟request/事务 数量 并发数: 系统同时处理的request/事务数 响应时间:  一般取平均响应时间 (很多人经常会把并发数和TPS理解混淆)

【杂谈】Spring Boot 默认支持的并发量

Spring Boot应用支持的最大并发量是多少? Spring Boot 能支持的最大并发量主要看其对Tomcat的设置,可以在配置文件中对其进行更改.当在配置文件中敲出max后提示值就是它的默认值. 我们可以看到默认设置中,Tomcat的最大线程数是200,最大连接数是10000. 并发量指的是连接数,还是线程数? 当然是连接数. 200个线程如何处理10000条连接? Tomcat有两种处理连接的模式,一种是BIO,一个线程只处理一个连接,另一种就是NIO,一个线程处理多个连接.由于HTT