为了账号安全,请及时绑定邮箱和手机立即绑定

跪求!Swoole 中关于 swoole_websocket_server 压测的问题。跪求!

跪求!Swoole 中关于 swoole_websocket_server 压测的问题。跪求!

HUX布斯 2019-06-21 16:50:30
Swoole版本:4.3对swoole_websocket_server压测时,使用这个方法可行吗?//代码片段$this->concurrency=100;$this->request=100000;go(function(){for($c=$this->concurrency;$c--;){$cli=new\Swoole\Coroutine\Http\Client('127.0.0.1',9501);$ret=$cli->upgrade('/');if($ret){while($this->requestedrequest){$this->push($cli);$cli->recv();}}}});官方使用的swoole_http_client在4.3版本移除了。另外:使用Task或不使用Task,压测时会有很大区别吗,目前本地测着区别不大,是这样的吗?//使用Task代码$this->serv->on('message',function($serv,$frame){$serv->task($frame->data);});$this->serv->on('task',function($serv,$task){foreach($serv->connectionsas$fd){$connectionInfo=$serv->connection_info($fd);if(isset($connectionInfo['websocket_status'])&&intval($connectionInfo['websocket_status'])==3){$serv->push($fd,$task->data);}}});//未使用Task代码$this->serv->on('message',function($server,$frame){foreach($this->serv->connectionsas$fd){$connectionInfo=$this->serv->connection_info($fd);if(isset($connectionInfo['websocket_status'])&&intval($connectionInfo['websocket_status'])==3){$server->push($fd,$frame->data);}}});机器信息Mac上安装的ParallelsDesktop虚拟机系统:Ubuntu16.04.3LTS内存:数量:1核数:2CPU:数量:1大小:2GConcurrency:100Requestnum:100000Successnum:100000Totaltime:8.9364Requestpersecond:11190请前辈们指点,这个量级有问题吗?感谢!
查看完整描述

2 回答

?
手掌心

TA贡献1942条经验 获得超3个赞

对,使用协程和协程websocket客户端进行压测。性能可以进行优化,建议关闭websocket_mask,这个比较耗费CPU
你的机器本身只有1核,还要同时运行客户端和服务器端,1万QPS已经非常好了。
                            
查看完整回答
反对 回复 2019-06-21
  • 2 回答
  • 0 关注
  • 350 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信