WebSocket-bench分布式压测部署

Posted 平凡的人生-野草

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WebSocket-bench分布式压测部署相关的知识,希望对你有一定的参考价值。

1.首先要把用户自己编写业务压测逻辑generator.js脚本分别放到各压测机上

2.打通各压测机的ssh登录秘钥

这里我请教同事得到一个比较快捷方便的配置方法----

采用centos系统自带的秘钥-------->敲出ssh字符,然后双按tab键,

就会出现我们想要的一些数据。。。。

如图:

然后执行ssh-copy-id   root@ip地址

会出现一些选项,我们选择yes,及root账号输入密码就可以,

成功后,我们验证一下,我们是否配合秘钥成功  --------------我们这里的控制台是要去链接多台压载机,所以给其它压载机的是公秘钥,控制台是私秘钥

直接敲入ssh  ip地址  查看是否登录成功

3 websocket-bench,控制脚本编写

#!/bin/bash
#disabled selinux
nodes="172.18.10.38 
172.18.10.37
172.18.10.36
172.18.10.35
172.18.10.34
172.18.10.33
172.18.10.32
172.18.10.31
172.18.10.30
172.18.10.49"
for node in ${nodes}
do               //---------这里的大括号是让它并行运行命令,如果要串行去掉{}&
{
echo "online ${node} ..."
ssh root@${node} "cd /usr/lib/node_modules/websocket-bench/lib/ && websocket-bench -a 998 -c 2 -k -g generator.js http://172.18.10.10:3380"
}&
done
View Code

4 各加载机generator.js脚本

 1 /*global module, require*/
 2 var i =  0;
 3 var m = 1;
 4 var c = 0;
 5 var logger = require(\'./logger\');
 6 var start = Date.now();
 7 setTimeout(function() {
 8 }, 1000);
 9 module.exports = {
10   onConnect : function (client, done) {
11 // 订阅消息
12         var _m = m;
13        client.emit(\'pusher_test:subscribe\',{channel:\'private-group-NO\' + _m, auth:\'callback\'});
14         console.log(m);
15 //  发送消息
16        setInterval(function() {
17         if (i<1000000000){
18          client.emit(\'pusher_test:messgae\',{channel:\'private-group-NO\' + _m, msg: \'我是>第\' + ++i +\'个消息\'});
19         }}, 1000);
20 //  监听消息
21         client.on(\'private-group-NO\' + _m, function(content) {
22                 console.log(new Date()+ new Date().getMilliseconds());
23                  console.log(content);
24          });
25         c++;   //是判断总订阅人数
26         if (c % 2 == 0) {
27         m++;
28         }
29   done();
30 }};
View Code

 

以上是关于WebSocket-bench分布式压测部署的主要内容,如果未能解决你的问题,请参考以下文章

linux下自动化实现分布式压测

分布式测试工具Beetle.DT的部署并进行HTTP,SQL,TCP压测

WebSocket-bench测试WebSocket

jemter压力测试准备分布式部署以及Linux运行jemter脚本

jmeter分布式压测

YCSB测试HBase远程完全分布式集群