背景

最近客户端实现了一个基于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 协议的压力测试相关推荐

  1. Jmeter对基于websocket协议的压力测试

    WebSocket protocol 是HTML5一种新的协议.它实现了浏览器与服务器全双工通信(full-duplex). 浏览器和服务器只需要要做一个握手的动作,然后,浏览器和服务器之间就形成了一 ...

  2. php即时聊天的框架_workerman-chat(PHP开发的基于Websocket协议的聊天室框架)(thinkphp也是支持socket聊天的)...

    workerman-chat(PHP开发的基于Websocket协议的聊天室框架)(thinkphp也是支持socket聊天的) 一.总结 1.下面链接里面还有一个来聊的php聊天室源码可以学习 2. ...

  3. 基于WebSocket协议实现Broker

    写在前面: 前两篇文字<<基于MQTT协议谈谈物联网开发-华佗写代码>>,<<基于MQTT协议实现Broker-华佗写代码>>主要叙述了MQTT协议的编 ...

  4. workerman-chat(PHP开发的基于Websocket协议的聊天室框架)(thinkphp也是支持socket聊天的)...

    workerman-chat(PHP开发的基于Websocket协议的聊天室框架)(thinkphp也是支持socket聊天的) 一.总结 1.下面链接里面还有一个来聊的php聊天室源码可以学习 2. ...

  5. Spring Boot实战之基于WebSocket协议构建交互式Web应用

    本文阅读时间大约8分钟. 1. WebSocket简介 WebSocekt协议诞生于2008年,在2011年成为国际标准,目前所有的浏览器都已经支持WebSocket协议了.WebSocket协议属于 ...

  6. 基于Kubernetes的分布式压力测试方案

    压力测试是用来检测系统承载能力的有效手段.在系统规模较小的时候,在一台空闲的服务器上使用[ab],[wrk],[siege]等工具发起一定量的并发请求即可得到一个初步的测试结果.但在系统复杂度逐步提高 ...

  7. 基于WebSocket协议的iOS端即时聊天

    好好好久没有在cnblogs上写博客,不过在这里写的最早的一篇博客的时间戳,真是时间久远啊,那时候还没毕业.不在cnblogs的期间,在github pages.简书上写过博客,github page ...

  8. websocket python爬虫_python实现基于websocket协议的网络爬虫

    WebSocket是一种在单个TCP连接上进行全双工通信的协议,简单来说就是建立一个TCP长连接之后,你可以服务器随时可以给客户端发送消息,客户端随时可以给服务器发送消息,而以前只能是客户端给服务器发 ...

  9. SIP协议和压力测试, SIP callflow图形生成

    SIPp是一个测试SIP协议性能的工具软件.这是一个GPL的开放源码软件.      它包含了一些基本的SipStone用户代理工作流程(UAC和UAS),并可使用INVITE和B YE建立和释放多个 ...

最新文章

  1. Spring MVC常用注解--“姐妹花”@RequestBody和@ResponseBody
  2. Maven手动将jar包放入本地仓库
  3. c语言visit函数指针,C++中的函数指针总结
  4. C里面的scanf那个功能在matlab中实现
  5. 谁将引领新一代视频编码标准:HEVC、AVS2和AV1性能对比报告
  6. html 自动滚动标签,HTML滚动标签(marquee标签)
  7. 这个女生躲在衣柜等男友回家,结果竟是......
  8. 学车是学手动档好,还是学自动档好呢?另外建议自驾游选哪个档比较好呢?
  9. 16种常用统计分析软件介绍
  10. 百度AI-语音识别图片搜索(Java)
  11. 优化三维空间定位法及C语言快捷实现
  12. Spring框架基础(中)
  13. 页面验证是否是真实有效的身份证号码
  14. HEG安装及hdf文件转tif文件批处理
  15. 软件项目经理需要了解的法律法规
  16. 小甲鱼python003答案_小甲鱼Python第003讲:插曲之变量和字符串|课后测验及参考答案...
  17. 电磁超声传感器的三大典型结构
  18. 为什么要学习网络协议?
  19. 10个前端动画库让你的交互更加炫酷
  20. CSS溢出显示三个小圆点

热门文章

  1. 中国人工智能学会通讯——从语料库中习得的语义包含类人的偏见
  2. 云课堂初识计算机之软件答案,智慧职教云课堂计算机应用基础(湖南大众传媒职业技术学院)答案公众号...
  3. matlab代码:计及碳捕集电厂低碳特性电力系统源-荷多时间尺度调度方法(电机工程学报)
  4. 《Effective C++》 总结篇(杂项讨论)
  5. 云计算学习路线思维导图
  6. 51单片机_11-2 蜂鸣器播放音乐
  7. Erlang NIF使用
  8. windows系统的安装时间怎么查看
  9. 阿里架构师耗时 1 年,把 P8 所需要的整个 Java 体系,都整理到了一起
  10. ASR:语音识别(闻食物声辨物)cnn与xgboost两个方法