dotnetcore http服务器研究(二)性能分析
Asp.net core kestrel 服务器性能分析
因近来发现neocli 使用asp.net core kestrel 服务器提供rpc调用,性能比较低。
和以前做过测试差异比较大,故而再次测试。考虑到micheal提供的因素主要是http相应时间,故针对http响应时间增加两个测试
先放代码,测试程序在
https://github.com/lightszero/lightchain
测试说明
测试方案1
http请求直接返回
测试方案2
延迟1秒返回,但是用Task.Delay,让Task模型不会堵塞
测试方案3
延迟1秒返回,当前线程直接堵塞死
测试结果
结果分析
测试均针对127.0.0.1进行,采用100个httpclient对象,从100个队列 分别请求测试123
得到的结论是
测试1 tps在 1000 到800浮动
测试2 tps 在 80 到100 浮动
测试3 tps 在 15 到 30 浮动
另外调整服务端ThreadPool.SetMaxThread 对测试结果干扰很小,忽略不计
分析此结论认为,kestrel 的处理能力对响应时间长的请求比较敏感。实际用于处理请求的线程估计是30左右,没有调整方法。
建议的处理方法
所有的RPC均受此影响,http响应时间越慢,整体处理能力就越差。
无论是sendraw,invokescript。
NEOCLI的rpc性能要提升,都需要比较大的改造
之后将尝试使用websocket 之类的长连接方案提升通讯性能
dotnetcore http服务器研究(二)性能分析的更多相关文章
- x86服务器中网络性能分析与调优 转
x86服务器中网络性能分析与调优 2017-04-05 巨枫 英特尔精英汇 [OpenStack 易经]是 EasyStack 官微在2017年新推出的技术品牌,将原创技术干货分享给您,本期我们讨论 ...
- Linux服务器I/O性能分析-1
一.IOSTAT误区 1.1 误区-svctm Linux上的svctm是重要的I/O指标(I/O平均服务时间-单位毫秒),这个值直接反映了硬件的性能(I/O请求从SCSI层发出--->I/O完 ...
- mysql高级教程(二)-----性能分析
MySQL常见瓶颈 1.cpu SQL中对大量数据进行比较.关联.排序.分组 2.IO a.实例内存满足不了缓存数据或排序等需要,导致产生大量物理 IO. b.查询执行效率低,扫描过多数据行. 3.锁 ...
- dotnetcore Http服务器研究(一)
自从dotnet core 诞生以来,发展非常强势.我们总有些需要写一个独立的http服务器的需求,我想是时候忘记httplistener 了. dotnet framework 时代建一个小的htt ...
- Linux服务器I/O性能分析-2
一.如何正确分析IO性能 1.1 BLKTRACE分析IO性能 之前的文章已经说明,要是系统发生I/O性能问题,我们常用的命令是无法精确定位问题(内核I/O调度器消耗的时间和硬件消耗的时间,这个不能作 ...
- Linux服务器I/O性能分析-3
一.通过脚本分析IO的读/写数量.最大延迟.延迟的分布情况.块大小及数量 #!/bin/sh # # File Name : count_io.sh # Time : 2020-07-29-11:24 ...
- 高性能Linux服务器 第10章 基于Linux服务器的性能分析与优化
高性能Linux服务器 第10章 基于Linux服务器的性能分析与优化 作为一名Linux系统管理员,最主要的工作是优化系统配置,使应用在系统上以最优的状态运行.但硬件问题.软件问题.网络环境等 ...
- PHP 性能分析与实验(二)——PHP 性能的微观分析
[编者按]此前,阅读过了很多关于 PHP 性能分析的文章,不过写的都是一条一条的规则,而且,这些规则并没有上下文,也没有明确的实验来体现出这些规则的优势,同时讨论的也侧重于一些语法要点.本文就改变 P ...
- 基于Linux服务器的性能分析与优化
作为一名Linux系统管理员,最主要的工作是优化系统配置,使应用在系统上以最优的状态运行,但硬件问题.软件问题.网络环境等的复杂性和多变性,导致了对系统的优化变得异常复杂,如何定位性能问题出在哪个方面 ...
随机推荐
- canvans生成图片<p>标签文字不居中
尝试使用magin 0px auto ;width:100%解决.
- 一个关于kindle固件修改的问题
手头有一个序列号为B05A开头的日版kpw2,默认没有中文界面.之前看过@5201992318q 大神的帖子,原因是系统langpicker.conf文件中有一段判断序列号并删除语言的代码,于是我萌发 ...
- 通配符的匹配很全面, 但无法找到元素 'mvc:annotation-driven' 的声明
通配符的匹配很全面, 但无法找到元素 'mvc:annotation-driven' 的声明 错误原因是springmvc中的约束信息不对 <beans xmlns="http://w ...
- Eclipse使用Git检出项目
1.打开Eclipse——File——Import...: 2.在弹出的Import框中选择Git——Projects from Git——NEXT: 3.选择Clone URI——Next: 4.输 ...
- maven配置及IDEA配置maven环境
一. maven的下载及配置 1. maven下载地址 可以在网址:https://maven.apache.org/download.cgi下载最新版本的maven 2. maven文件解压缩 解压 ...
- vue项目的mode:history模式
最近做的Vue + Vue-Router + Webpack +minitUI项目碰到的问题,在此记录一下,Vue-router 中有hash模式和history模式,vue的路由默认是hash模式, ...
- Django unittest 单元测试
这里就不再介绍单元测试的作用了. 首先单元测试的创建方式有两种,一种是app下面的test文件,另一种是自定义方式创建 方法一.使用test.py文件测试 from django.test impor ...
- Js获取客户端用户Ip地址
利用搜狐查询接口查询Ip地址: <!DOCTYPE html> <html> <head> <meta charset="utf-8" / ...
- Jmeter JDBC Connection Configuration 链接失败,提示Error preloading the connection pool
修改数据配置的连接数即可:修改为小一点 下面是oracle 配置连接的方式
- systemctl: command not found
可以使用service代替 service语法有一点区别 这里演示了错误语法和正确语法