目录

SignalR系列目录

前言

也是好久没写博客了,近期确实很忙,嗯..几个项目..头要炸..今天忙里偷闲.继续我们的小系列..

先谢谢大家的支持..

我们来聊聊SignalR的性能监测与服务器的负载测试

我们开发任何一个应用,他的性能监测是很重要的参考数据,关系着我们后期优化,更新,改动..等等...

SignalR作为一个及时通讯的框架,稳定性,及时性,延迟这些,更是需要全方位的监测

(就不多废话了,大家都懂)

负载测试...  装个大点的B.. 人家淘宝爸爸双十一这么大的访问压力,就是靠着多轮负载测试才有的今天..(咳咳,B装的有点大,大神无视)

测试环境

开发工具:VS2013   数据库:无   SignalR版本:2.2  系统:Win7

正文

嗯,读本文之前,你需要去GitHub上下载SignalR源码 : 点我下载

话不多说,我们先来说性能监测

我们下载了SignalR源码,打开它,找到Microsoft.AspNet.SignalR.Utils这个项目,编译..

我们会在Debug中看到signalr.exe这个文件

当然..直接运行是不行的.CMD,找到 (你的存放路径)\SignalR-dev\SignalR-dev\src\Microsoft.AspNet.SignalR.Utils\bin\Debug

运行命令行:SignalR.exe ipc

会看到下图:

这就是安装OK了..

然后,接着,我们右键,我的电脑>管理>性能监视器

如图:

打开性能监视器,右键添加,或者直接点击绿色的加号,

找到SignalR,在下面的框中找到自己需要监控的实例(使用了SignalR的实例都在里面),选择添加,点击确定

如图:

这样,我们就可以及时的监控到SignalR的运行情况,连接数量等等数据(数据太多,我就不一一列出了)...

如下图:

性能监控到此就结束了,接下来,我们要讲讲负载测试

负载测试

关于负载测试.

SignalR给我们提供了不少工具,比如Microsoft.AspNet.SignalR.Crank.(这个大家先记住,后面我们会用到)

这个也是一个小工具,并不是什么类库,当然,是开源的,有兴趣的大神可以去研究研究基于这个写一个适合自己项目的负载测试工具..

同样,需要下载SignalR源码,不过,这次我们编译的是Microsoft.AspNet.SignalR.Crank.这个类库.

编译完成之后,我们继续打开SignalR源码找到Microsoft.AspNet.SignalR.LoadTestHarness这个项目,

看名字就很明显了..这是官方爸爸给我们写好的一个负载测试工具,当然,源码也可以随意看,自行修改或者扩展.

源码我就不贴出来了,大家可以自己去看主要内容都在Dashboard.cs这个类里面

我们把这个项目设置为启动项,直接运行,得到如下页面:

PS:界面当然是英文的,我随意找了个翻译工具 翻译了一下,大概意思也都差不多..

我们可以选择连接行为,设置发送频率  (信息/每秒,..不是味精.. 哈哈哈哈 - -)

当然,也可以设置每条信息的数据量大小

点击负载生成器,会看到如下界面:

嗯,其实就是打开了一个新的连接,相当于多了一个用户进行连接,设置好定时发送时间,点击Go...就开始发送了..

虽然这个小工具..已经很比较完善了,但是,我们的服务器..是要进行负载压力测试的..一个个的点击页面,这要点到什么时候?(麒麟臂可以无视)..

所以这就需要我们前面提到过的工具:Microsoft.AspNet.SignalR.Crank

首先,我们还是编译它,然后CMD进入它的路径(当然,在服务器上用,不需要源码,编译好复制上去就行):

输入命令: crank /?

会看到如下图的信息:

大致翻译一下:

  • / ?:显示屏幕上的帮助。 如果显示的可用选项也Url参数被省略。

  • / Url:SignalR的URL连接。 这个参数是必需的。 SignalR应用程序使用默认映射,路径将在“/ SignalR”结束。

  • /Transport:选择连接方式。 默认值是auto,会自动选择最优的,WebSockets,serversenteventslongpolling(注意:foreverframe不行

  • / BatchSize:添加到每一批客户的数量。 默认是50。

  • / ConnectInterval:添加连接之间的间隔以毫秒为单位。 默认值是500。

  • /Connections:用于负载测试的应用程序的连接数量。 默认值是100000。

  • / ConnectTimeout:超时关闭的毫秒数。 默认值是300。

  • MinServerMBytes:最小服务器兆字节。 默认值是500。

  • SendBytes:有效负载发送到服务器的大小字节。 缺省值是0。

  • SendInterval:消息到服务器之间的延迟毫秒。 默认值是500。

  • SendTimeout:发送到服务器超时的毫秒数。 默认值是300。

  • ControllerUrl:

  • NumClients:

  • Logfile:测试运行的日志文件的文件名。 默认值是crank.csv

  • SampleInterval:性能计数器样本之间的时间,以毫秒为单位。 默认值是1000。

  • SignalRInstance:为服务器上的性能计数器实例名称。 默认是使用客户端连接状态。

这里,我们为了测试,输入:crank /Connections:100 /Url:http://localhost:29573/TestConnection /BatchSize:10

也就是每10批加入连接,加入100个.

连接添加完毕了,我们进入刚才的页面,进行广播

如下图:

这里我们设置的每秒10条信息.1024b大小,用户量170,可以明显在监控中看到,我的渣渣电脑CPU已经彪到74%了..

本文到此就结束了..

写在最后

SignalR目前是完全开源的,文章中所涉及到的项目,大家下载SignalR源码就能看到,也希望有大神能被我这块砖引出来根据源码扩展个更好的负载工具或者监控工具.

SignalR系列续集[系列8:SignalR的性能监测与服务器的负载测试]相关推荐

  1. SignalR的性能监测与服务器的负载测试

    前言 也是好久没写博客了,近期确实很忙,嗯..几个项目..头要炸..今天忙里偷闲.继续我们的小系列.. 先谢谢大家的支持.. 我们来聊聊SignalR的性能监测与服务器的负载测试 我们开发任何一个应用 ...

  2. mqtt服务器性能分析,MQTT服务器动态负载均衡的研究与应用

    1. 引言 随着越来越多的工业设备接入物联网,因处理器能力.网络带宽等具有局限性,所以对其通信技术提出了更高的要求 [1].作为网页标准的HTTP,已不能满足机器之间的大规模沟通,其请求/回答模式不再 ...

  3. SignalR 2.0 系列: SignalR 自托管主机

    这是微软官方SignalR 2.0教程Getting Started with ASP.NET SignalR 2.0系列的翻译,这里是第六篇: SignalR 自托管主机 原文: SignalR S ...

  4. 干货干货FPGA lattice深力科 FPGA性能优势以及市场前景分析 以及lattice MachXO2系列MachXO3系列资料参考

    干货干货FPGA lattice深力科 FPGA性能优势以及市场前景分析 以及lattice MachXO2系列MachXO3系列资料参考 那什么是FPGA芯片呢? FPGA全称为:现场可编程逻辑门阵 ...

  5. NLP之PTM:自然语言处理领域—预训练大模型时代的各种吊炸天大模型算法概述(Word2Vec→ELMO→Attention→Transfo→GPT系列/BERT系列等)、关系梳理、模型对比之详细攻略

    NLP之PTM:自然语言处理领域-预训练大模型时代的各种吊炸天大模型算法概述(Word2Vec→ELMO→Attention→Transformer→GPT系列/BERT系列等).关系梳理.模型对比之 ...

  6. [ 搭建Redis本地服务器实践系列三 ] :图解Redis客户端工具连接Redis服务器

    原文:[ 搭建Redis本地服务器实践系列三 ] :图解Redis客户端工具连接Redis服务器 上一章 [ 搭建Redis本地服务器实践系列二 ] :图解CentOS7配置Redis  介绍了Red ...

  7. Python语言学习:解决python版本升级问题集合(python2系列→Python3系列)导致错误的总结集合

    Python语言学习:解决python版本升级问题集合(python2系列→Python3系列)导致错误的总结集合 目录 Python版本升级的原因 Text and binary data in P ...

  8. 正则表达式 特殊符号系列 通配符系列

    1.1 重定向符号 输出重定向 先清空文件,追加 追加输出重定向 追加 < 输入重定向 与 xargs tr << 追加输入重定向 cat 向一个文件追加多行. cat >&g ...

  9. 服务器硬盘如何验收,系列服务器及存储测试安装验收报告.doc

    系列服务器及存储测试安装验收报告 p系列UNIX服务器测试安装说明 1.测试p系列UNIX服务器系统开关机及系统启动 测试目的:系统操作系统是否安装完好,主机能否正常开关机. 测试方法:用正常关机手段 ...

最新文章

  1. 奖金+招聘绿色通道,这一届算法大赛关注下?
  2. pycharm一键调整代码格式(快捷键)
  3. 第三期 预测——Frenet 坐标
  4. 第章量子计算机产业,又一个世界第一,九章量子计算机诞生,中国战斗机智能空战不是梦...
  5. python和java对比并发_Python并发编程之从性能角度来初探并发编程(一)
  6. openresty配置部署
  7. linux系统用户组管理
  8. C# 7 中的模范和实践
  9. python作者 google面试_如果Google面试让你用python写一个树的遍历程序
  10. sqlserver实现分页的几种方式
  11. adsense三种广告要屏蔽
  12. js最小化浏览器_「译」解析、抽象语法树(ast) +如何最小化解析时间的5个技巧...
  13. 抗菌药物敏感性检测仪行业调研报告 - 市场现状分析与发展前景预测
  14. 如何在Outlook 2003和OWA中允许接受EXE附件
  15. Hbase高级功能过滤(Filter)
  16. caffe的googlenet模型使用
  17. Centos 7 安装 TEMPO2
  18. mongodb仲裁者_真理的仲裁者
  19. 计算机高级 论文怎么考,干货丨如何在一个月内通过高级软考证
  20. An unexpected error has been detected by Java Runtime Environment

热门文章

  1. BS开发中常用的Javascript技术
  2. qpython3安装lxml_centos python安装lxml报错
  3. abaqus python二次开发攻略_Abaqus有限元分析常见问题解答与实用技巧 12天后上架...
  4. jsp页面截取字符串,显示指定长度
  5. 201521123029《Java程序设计》第1周学习总结
  6. Heritrix 3.1.0 源码解析(八)
  7. 转--Oracle数据类型及存储方式【C】
  8. 8种常见机器学习算法比较
  9. 微软研究员在ImageNet计算机视觉识别挑战中实现里程碑式突破
  10. 集群介绍 、keepalived介绍 、 用keepalived配置高可用集群