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生效。