GatewayWorker并发上限

Ac.

问题描述

php使用GatewayWorker实现了直播间 但是直播间每天记录下来的最高并发每天都是4027 然后服务器cpu最高也就不到70% 这是什么原因

程序代码或配置

start_gateway配置信息
// gateway 进程
$gateway = new Gateway("Websocket://0.0.0.0:8821",$context);
// 开启SSL,websocket+SSL 即wss
$gateway->transport = 'ssl';

// 设置名称,方便status时查看
$gateway->name = 'ChatGateway';
// 设置进程数,gateway进程数建议与cpu核数相同
$gateway->count = 4;
// 分布式部署时请设置成内网ip(非127.0.0.1)
$gateway->lanIp = '127.0.0.1';
// 内部通讯起始端口,假如$gateway->count=4,起始端口为4000
// 则一般会使用4000 4001 4002 4003 4个端口作为内部通讯端口 
$gateway->startPort = 8822;
// 心跳间隔
$gateway->pingInterval = 10;
// 心跳数据
$gateway->pingData = '{"type":"ping"}';
// 服务注册地址
$gateway->registerAddress = '127.0.0.1:8820';

start businessworker 配置代码
// 自动加载类
require_once __DIR__ . '/../../vendor/autoload.php';

// bussinessWorker 进程
$worker = new BusinessWorker();
// worker名称
$worker->name = 'ChatBusinessWorker';
// bussinessWorker进程数量
$worker->count = 8;
// 服务注册地址
$worker->registerAddress = '127.0.0.1:8820';

// 如果不是在根目录启动,则运行runAll方法
if(!defined('GLOBAL_START'))
{
    Worker::runAll();
}

重现问题的步骤

操作系统环境及workerman/webman等具体版本

workerman/gateway-worker" : ">=3.0.0"

275 1 0
1个回答

walkor 打赏

https://www.workerman.net/doc/workerman/appendices/kernel-optimization.html

安装event扩展,优化linux内核,然后restart重启gatewayWorker

×
🔝