关于Linux环境下, WeLive6客服系统workerman多进程优化的问题

WeLive项目组 2020-6-3 2632

Windows服务器下workerman都是单进程的,workerman没啥可优化的。

Linux环境下, workerman可以多进程运行,进程数越多,可以承载同时在线人数就越多。但进程数也不是越多越好


1. 打开welive目录下的: includes/workerman/start_gateway.php 文件:

// gateway进程数
$gateway->count = 2;

// 本机ip,分布式部署时使用内网ip
$gateway->lanIp = '127.0.0.1';

// 内部通讯起始端口,假如$gateway->count = 2,起始端口为4000
// 则一般会使用4000 4001 2个端口作为内部通讯端口 
$gateway->startPort = 8400;

其中: $gateway->count = 2;

Gateway进程数默认为2,可设置为CPU核数相同, 性能最好。如果服务器cpu仅是1核的,建议此处改为1,否则小牛拉大车,WeLive运行速度及承载力反而可能降低

注意:$gateway->count 最大不要超过10,否则会占用超过10个端口,而8410端口默认给另一个workerman进程使用,此时将引起端口冲突。也就是说,即使服务器CPU超过10核心,最大也只能设置 $gateway->count = 10;

除非改gateway内部通讯起始端口号,如: $gateway->startPort = 8400; 


2. 打开welive目录下的: includes/workerman/start_businessworker.php 文件:

// worker名称
$worker->name = 'WeLiveBusinessWorker';

// bussinessWorker进程数量
$worker->count = 2;

// 服务注册地址
$worker->registerAddress = '127.0.0.1:8410';

bussinessWorker默认进程数为2,它一般设置为CPU核数的1倍-3倍即可。如CPU核数1核,那此值设置为1-3最佳。


3. 如果修改了上述两个文件中的任意一个,请重启workerman生效。

New Post (2)
  • WeLive项目组 2020-6-5
    Quote 2Floor
    感觉Linux下,上述两个文件设置为开启 2 个进程会比较快,特别是客服首次进入时。

    开启 4 个进程时,welive启动会慢一些,可能是测试服务器CPU内核较少的原因。
  • lpws521 2020-6-9
    Quote 3Floor
    WeLive项目组 感觉Linux下,上述两个文件设置为开启 2 个进程会比较快,特别是客服首次进入时。 开启 4 个进程时,welive启动会慢一些,可能是测试服务器CPU内核较少的原因。
    设置4核心4线程导致连接不稳定 把线程开大了就正常了
Back
Create New Thread