socket服务器性能测试,使用websocket-bench进行socket.io性能测试

全宪
2023-12-01

下面描述使用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=live

1)服务器: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

 类似资料: