c#---Socean.RPC框架实测[并发量13w][响应时间0.04ms]
前言
经过一段时间的优化,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可实现简易分布式功能
3.分布式计算、大数据,由于本框架的高速响应的特点,可用于分布式计算、大数据等高响应速度的场景
c#---Socean.RPC框架实测[并发量13w][响应时间0.04ms]的更多相关文章
- c#---Socean.Rpc之EasyProxy
目录 1.高性能RPC框架:Socean.RPC 2.Socean.RPC框架实测 3.Socean.Rpc之EasyProxy 简介 这几天给Socean.RPC加上了动态代理,简称EasyProx ...
- QPS/TPS/并发量/系统吞吐量概念和公式
1.概念 我们在日常工作中经常会听到QPS/TPS这些名词,也会经常被别人问起说你的系统吞吐量有多大.一个系统的吞度量(承压能力)与request对CPU的消耗.外部接口.IO等等紧密关联,单个req ...
- QPS/TPS/并发量/系统吞吐量的概念
我们在日常工作中经常会听到QPS/TPS这些名词,也会经常被别人问起说你的系统吞吐量有多大.这个问题从业务上来讲,可以理解为应用系统每秒钟最大能接受的用户访问量.或者每秒钟最大能处理的请求数: QPS ...
- 阿里云云盾抗下全球最大DDoS攻击(5亿次请求,95万QPS HTTPS CC攻击) ,阿里百万级QPS资源调度系统,一般的服务器qps多少? QPS/TPS/并发量/系统吞吐量
阿里云云盾抗下全球最大DDoS攻击(5亿次请求,95万QPS HTTPS CC攻击) 作者:用户 来源:互联网 时间:2016-03-30 13:32:40 安全流量事件https互联网资源 摘要: ...
- 分布式远程服务调用(RPC)框架
分布式远程服务调用(RPC)框架 finagle:一个支持容错,协议无关的RPC系统 热门度(没变化) 10.0 活跃度(没变化) 10.0 Watchers:581 Star:6174 Fork: ...
- 聊聊QPS/TPS/并发量/系统吞吐量的概念
原文:聊聊QPS/TPS/并发量/系统吞吐量的概念 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/cainiao_user/article/deta ...
- 并发量,tps,qps
QPS/TPS/并发量/系统吞吐量的概念 2017年08月13日 17:24:47 阅读数:10682 我们在日常工作中经常会听到QPS/TPS这些名词,也会经常被别人问起说你的系统吞吐量有多大.这个 ...
- C# -- 高性能RPC框架:Socean.RPC
简介 Socean.RPC是一个.Net下的高性能RPC框架,框架以高性能.高稳定性为目标,底层基于socket,无第三方库引用,代码简洁,总代码量大约在2000行,框架性能较高,在普通PC上测试,长 ...
- 高并发架构系列:如何从0到1设计一个类Dubbo的RPC框架
在过去持续分享的几十期阿里Java面试题中,几乎每次都会问到Dubbo相关问题,比如:“如何从0到1设计一个Dubbo的RPC框架”,这个问题主要考察以下几个方面: 你对RPC框架的底层原理掌握程度. ...
随机推荐
- centos7利用acme.sh获取Let's Encrypt的永久免费ssl证书并配置网站域名https访问
acme.sh介绍:https://github.com/Neilpang/acme.sh/wiki/%E8%AF%B4%E6%98%8E github:https://github.com/Neil ...
- 利用多线程使socket服务端可以与多个客户端同时通讯
利用多线程使socket服务端可以与多个客户端同时通讯 server import socket 1. 符合TCP协议的手机 server = socket.socket(socket.AF_INET ...
- 微信H5页面分享获取JS-SDK
https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115 微信开发文档: 生成签名之前必须先了解一下jsapi_ti ...
- es4x 使用nodejs 开发vertx 应用框架试用
es4x 是将vertx 的特性带到nodejs 的开发中,性能很不错,同时开发方式和nodejs 一样,可以加速vertx 应用的开发,同时也可以方便的集成java 软件包,提供的cli 工具也很方 ...
- windows下如何制作和应用数字签名证书 全流程
目前我们在发布应用程序时,有时用户下载后会被360杀毒当做木马直接隔离.为应用程序可执行文件打上数字签名可以让360杀毒放宽检测规则.下文是讲述如何制作数字签名证书的过程. 需要准备的工具:makec ...
- Log4j Threshold指定输出等级&&Append指定是否追加内容
Threshold指定输出等级 有时候我们需要把一些报错ERROR日志单独存到指定文件 ,这时候,Threshold属性就派上用场了: Threshold属性可以指定日志level Log4j根据日志 ...
- shell (二) shell for循环
for循环 基本示例 for i in var1 var2 var2 do echo $i done for i in {1..100} do echo $i done 列表中复杂值,可以使用引号或者 ...
- 【Activiti学习之八】Spring整合Activiti
环境 JDK 1.8 MySQL 5.6 Tomcat 8 idea activiti 5.22 activiti-explorer是官方提供的一个演示项目,可以使用页面管理Activiti流程.ac ...
- Asp.Net Core 2.x 和 3.x WebAPI 使用 Swagger 时 API Controller 控制器 Action 方法 隐藏 hidden 与 and 分组 group
1.前言 为什么我们要隐藏部分接口? 因为我们在用swagger代替接口的时候,难免有些接口会直观的暴露出来,比如我们结合Consul一起使用的时候,会将健康检查接口以及报警通知接口暴露出来,这些接口 ...
- rpm续
一.安装源码包 安装源码包通常须要一下三步: (1) ./configure. 这步可以定制功能,加上相应 的选项即可,具体有什么选项可以通过命令./configure help来查看.这一步会 自动 ...