下面描述使用websocket-bench工具进行socket.io性能测试

1, 测试工具准备

1)客户端准备

(1)安装node

安装方法可在网络上查找

(2)安装websocket-bench

npm install -g websocket-bench --registry=http://registry.npm.taobao.org

(3)修改进程打开最大文件描述符数

vi /etc/profile
ulimit -n 65535 #增加行

2)服务端准备

(1)修改进程打开最大文件描述符数

vi /etc/profile
ulimit -n 65535 #增加行

(2)修改nginx

worker_processes auto;
worker_rlimit_nofile  100000;
pid /run/nginx.pid;
events {worker_connections 65535;multi_accept on;use epoll;
}

2, 测试

websocket-bench  -a 50 -c 10 http://172.16.11.6/testnamespace?group=live1)服务器:4核8GB 4个服务进程  2W连接正常  内存使用率达到80%
2)服务器:2核2GB 1个服务进程  8K连接正常  内存使用率达到100%
3)服务器:2核4GB 1个服务进程  1W连接正常  内存使用率达到60%综上:为了保证服务的健康性线上采用两台服务器(2核4GB) 的配置

3, 其他

(1)服务端多结点时候需要配置nginx upstream 节

upstream socket_api {ip_hash; #ip_hash 方式#sticky; #nginx-sticky-module 包server 172.16.11.6:9090 ;server 172.16.11.6:9092 ;server 172.16.11.6:9096 ;}

说明:配置后端多结点时,同一个连接的请求必须打到同一个后台服务上,有两种方式:

a)ip_hash 直接配置就能使用,但是只对与请求端ip的C端地址部分进行hash

b)使用nginx-sticky-module包, 需要编译安装nginx并把改模块加入

(2)websocekt-bench限制

websocekt-bench不支持cookie,所以nginx只能配置成ip_hash方式测试

[参考]

1,测试参考
2,websocket-bench
3,Nginx模块之SessionSticky

使用websocket-bench进行socket.io性能测试相关推荐

  1. 11-vue移动端项目(小智机器人聊天使用websocket协议使用socket.io客户端第三方包, 让div滚动条自动滚到最底部)

    小智同学 01 - 创建组件 创建组件 & 创建路由 设置入口 02 - 完成静态页面 头部标题 聊天区域 设置内容高度时会出现一个问题: 由于不同的手机型号的高度是不一样的,但是聊天区域的高 ...

  2. h5 socket.io java,从HTML5 WebSocket到Socket.io

    HTML5 WebSocket 作为新一代的web标准,HTML5为我们提供了很多有用的东西,比如canvas,本地存储(已经分离出去了),多媒体编程接口,当然还有我们的WebSocket.WebSo ...

  3. socket.io php 聊天室,WebSocket学习(一)——基于socket.io实现简单多人聊天室

    前言 什么是Websocket呢? 我们都知道在Http协议中,客户端与服务器端的通信是靠客户端发起请求,然后服务器端收到请求再进行回应,这个过程中,客户端是主动的,服务器端是被动的.Websocke ...

  4. websocket和socket.io

    websocket 三次握手 ws协议和http协议的区别 http HTTP是单向的,客户端发送请求,服务器发送响应.每个请求都与一个对应的响应相关联,在发送响应后客户端与服务器的连接会被关闭.每个 ...

  5. koa+mysql+vue+socket.io全栈开发之web api篇

    原文地址:koa+mysql+vue+socket.io全栈开发之web api篇 目标是建立一个 web QQ的项目,使用的技术栈如下: 后端是基于koa2 的 web api 服务层,提供curd ...

  6. Socket.IO 客户端 API IO

    IO 创建方式 <script src="/socket.io/socket.io.js"></script> <script>const so ...

  7. Socket.io 深入理解

    最近在做项目优化工作时,用到了Socket.io , Socket.io 文档比较少, 结合官网介绍以及自己在项目开发中的摸索,总结如下内容: Socket.io将Websocket和轮询 (Poll ...

  8. socket.io简介

    websocket是一种比较简单的协议,各种语言中都有很多实现版本,实际上它们差别不大,都是在websocket的基础上做些封装,随便选一个即可. socket.io就是众多websocket库中的一 ...

  9. Socket.io:有点意思

    个人网站 欢迎品尝 edwardesire.com 下面页面就是使用Socket.io制作的口袋妖怪游戏(默认小屏下已隐藏,请切换到大分辨率查看).左边是游戏画面,右边是按键表和聊天室.画面达到红蓝版 ...

最新文章

  1. 100万年薪只是起步价!跨境AI人才遭疯抢后最终去了哪儿?
  2. decimal函数python_decimal数据类型
  3. 20201014 《计算感知》第2节课 笔记
  4. Java黑皮书课后题第10章:**10.23(实现String类)在Java库中提供了String类,给出你自己对下面方法的实现(将新类命名为MyString2)
  5. C#调用webservice(二)
  6. linux系统调用的封装格式,ARM Linux系统调用的原理
  7. Ubuntu下实现eth0与wlan0完美桥接
  8. WebLogic11g-创建域(Domain)及基本配置
  9. html导航栏点击不能跳转,无法单击导航栏中的链接CSS HTML
  10. 荣耀Play3新版曝光:麒麟710A加持 其他配置不变
  11. L3-019 代码排版 (30 分)-PAT 团体程序设计天梯赛 GPLT
  12. 程序员怎样学习python_一个开发十年的程序员论:学习Python最正确的步骤(0基础必备)...
  13. python 秒数转化为时分秒
  14. python库怎么绘画_python中的turtle库(图形绘画库)
  15. 家庭收支软件用java写,eclipse编写的Java家庭收支记账软件
  16. 传统模式下安装linux,在将引导顺序更改为传统模式或在传统模式下安装操作系统时找不到引导设备...
  17. 纯css画三角形/梯形(兼容ie6)
  18. NOIP原题 斗地主(20190804)
  19. java 水晶按钮图片_JAVA GUI 开发---水晶图片按钮
  20. tplinkwr710n改无线打印服务器,【多图】TP-Link TL-WR710N 改8M Flash 刷OpenWrt

热门文章

  1. 有源蜂鸣器和无源蜂鸣器
  2. C#delegate基本使用
  3. 日均100w次登陆请求, 8G 内存该如何设置JVM参数?
  4. 【笔记】机器学习所涉及到的“微积分”知识
  5. 如何用 Java 对 PDF 文件进行电子签章(六)如何进行多次PDF签名 及总结
  6. 将U盘启动盘恢复成普通U盘的解决方法
  7. 计算机释放磁盘空间常用方法,教您如何在Win7计算机中释放更多磁盘空间
  8. 微软服务器系统ssd,在UCS B200 M5上安装带M.2 SSD的操作系统(VMware、Windows)
  9. 解读欧债危机-时寒冰
  10. 27个阿里 Java 开源项目,很全面!