基于 Websocket 协议的压力测试
背景
最近客户端实现了一个基于websocket的消息推送功能:长连接网络开关下发开后启动,然后保持链接,每隔15分钟发一次心跳包,服务器有数据时直接下发生效,因此需要对服务器进行压测。
本次通过写python脚本的方法模拟并发进行压力测试,相关测试方法如下。
什么是websocket协议
WebSocket是一种在单个TCP连接上进行全双工通讯的协议。WebSocket通信协议于2011年被IETF定为标准RFC 6455,并由RFC7936补充规范。
WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocketAPI中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。
测试场景
1.并发创建长连接,3min内建立连接22w,总连接数维持在22w左右,间歇下发通知,查看服务器的稳定性。
2.并发创建长连接,间歇性断开并重连,保证同时在线的长连接在22w左右,运行12H,查看服务器的稳定性。
测试步骤
1.编写脚本实现并发请求并发
2.搭建测试环境
①找1台liunx机器,搭建python运行环境,安装脚本支持的包、模块
②运行websocket脚本,保证脚本正常运行
③ 编写run_test.sh脚本,运行多个websocket.py,单机大约可同时并发大约5w~6w的tcp链接,视linux 系统内核而定(因为本次需要同时并发22w,共4台liunx机器,所以单台并发6w左右)。
问题总结
1.有些linux系统最大tcp链接数比较小,无法支持同时并发6w量的tcp链接。
2.原因:
最大tcp连接数和系统允许打开的最大文件数,用户允许打开的最大文件数,TCP网络连接可用的端口范围有关,取上述的最小值。
3.一般的设置规则为:系统最大文件数>可用端口>用户最大文件数
基于 Websocket 协议的压力测试相关推荐
- Jmeter对基于websocket协议的压力测试
WebSocket protocol 是HTML5一种新的协议.它实现了浏览器与服务器全双工通信(full-duplex). 浏览器和服务器只需要要做一个握手的动作,然后,浏览器和服务器之间就形成了一 ...
- php即时聊天的框架_workerman-chat(PHP开发的基于Websocket协议的聊天室框架)(thinkphp也是支持socket聊天的)...
workerman-chat(PHP开发的基于Websocket协议的聊天室框架)(thinkphp也是支持socket聊天的) 一.总结 1.下面链接里面还有一个来聊的php聊天室源码可以学习 2. ...
- 基于WebSocket协议实现Broker
写在前面: 前两篇文字<<基于MQTT协议谈谈物联网开发-华佗写代码>>,<<基于MQTT协议实现Broker-华佗写代码>>主要叙述了MQTT协议的编 ...
- workerman-chat(PHP开发的基于Websocket协议的聊天室框架)(thinkphp也是支持socket聊天的)...
workerman-chat(PHP开发的基于Websocket协议的聊天室框架)(thinkphp也是支持socket聊天的) 一.总结 1.下面链接里面还有一个来聊的php聊天室源码可以学习 2. ...
- Spring Boot实战之基于WebSocket协议构建交互式Web应用
本文阅读时间大约8分钟. 1. WebSocket简介 WebSocekt协议诞生于2008年,在2011年成为国际标准,目前所有的浏览器都已经支持WebSocket协议了.WebSocket协议属于 ...
- 基于Kubernetes的分布式压力测试方案
压力测试是用来检测系统承载能力的有效手段.在系统规模较小的时候,在一台空闲的服务器上使用[ab],[wrk],[siege]等工具发起一定量的并发请求即可得到一个初步的测试结果.但在系统复杂度逐步提高 ...
- 基于WebSocket协议的iOS端即时聊天
好好好久没有在cnblogs上写博客,不过在这里写的最早的一篇博客的时间戳,真是时间久远啊,那时候还没毕业.不在cnblogs的期间,在github pages.简书上写过博客,github page ...
- websocket python爬虫_python实现基于websocket协议的网络爬虫
WebSocket是一种在单个TCP连接上进行全双工通信的协议,简单来说就是建立一个TCP长连接之后,你可以服务器随时可以给客户端发送消息,客户端随时可以给服务器发送消息,而以前只能是客户端给服务器发 ...
- SIP协议和压力测试, SIP callflow图形生成
SIPp是一个测试SIP协议性能的工具软件.这是一个GPL的开放源码软件. 它包含了一些基本的SipStone用户代理工作流程(UAC和UAS),并可使用INVITE和B YE建立和释放多个 ...
最新文章
- Spring MVC常用注解--“姐妹花”@RequestBody和@ResponseBody
- Maven手动将jar包放入本地仓库
- c语言visit函数指针,C++中的函数指针总结
- C里面的scanf那个功能在matlab中实现
- 谁将引领新一代视频编码标准:HEVC、AVS2和AV1性能对比报告
- html 自动滚动标签,HTML滚动标签(marquee标签)
- 这个女生躲在衣柜等男友回家,结果竟是......
- 学车是学手动档好,还是学自动档好呢?另外建议自驾游选哪个档比较好呢?
- 16种常用统计分析软件介绍
- 百度AI-语音识别图片搜索(Java)
- 优化三维空间定位法及C语言快捷实现
- Spring框架基础(中)
- 页面验证是否是真实有效的身份证号码
- HEG安装及hdf文件转tif文件批处理
- 软件项目经理需要了解的法律法规
- 小甲鱼python003答案_小甲鱼Python第003讲:插曲之变量和字符串|课后测验及参考答案...
- 电磁超声传感器的三大典型结构
- 为什么要学习网络协议?
- 10个前端动画库让你的交互更加炫酷
- CSS溢出显示三个小圆点
热门文章
- 中国人工智能学会通讯——从语料库中习得的语义包含类人的偏见
- 云课堂初识计算机之软件答案,智慧职教云课堂计算机应用基础(湖南大众传媒职业技术学院)答案公众号...
- matlab代码:计及碳捕集电厂低碳特性电力系统源-荷多时间尺度调度方法(电机工程学报)
- 《Effective C++》 总结篇(杂项讨论)
- 云计算学习路线思维导图
- 51单片机_11-2 蜂鸣器播放音乐
- Erlang NIF使用
- windows系统的安装时间怎么查看
- 阿里架构师耗时 1 年,把 P8 所需要的整个 Java 体系,都整理到了一起
- ASR:语音识别(闻食物声辨物)cnn与xgboost两个方法