关于cpu核心数和进程数量的综合问题

adminadmin

linux系统

一、请问config下的 server.php
'count' => cpu_count() * 2,
这个核心数是啥意思,有啥用

二、使用了redis-queue队列
'consumer' => [
'handler' => Webman\RedisQueue\Process\Consumer::class,
'count' => 16, // 可以设置多进程同时消费
'constructor' => [
// 消费者类目录
'consumer_dir' => app_path() . '/queue/redis'
]
],
这个进程是开多少,一秒就同时开多少进程同时处理吗?那么应该按照什么设置标准

第三、咨询一下使用宝塔部署webman 也有一个进程数量 应该填写多少呢
截图

961 4 1
4个回答

Gin

不要用宝塔的 进程守护管理器 重启服务和停止启动服务有问题 建议直接用命令行启动

  • adminadmin 2023-01-31

    感觉没问题啊 不用的话 一会都要手动

mings

cpu_count = 机器的CPU数量,如果是2核2线程的CPU,这里是4;
cpu_count() *2 = 机器的CPU数量翻倍
server.php
count:意思是开启多少个线程,webman是同步的,如果每次请求耗时5s,同时有10个并发,count设置为5,那么只能等前5个请求处理完了,才处理后面5个请求。而count也并不是越多越好,可以按默认先跑,业务起来后通过status查看,经常busy的话可以考虑增加count的数量。

redis-queue里的count,设置16即意味同时消费16,第17个则等待前面的消费完再进行消费。具体设置看业务,如果队列积压过多的话可以开大count。

宝塔:不知道

  • 暂无评论
ysxpark

宝塔就开1个主进程,真实进程数量看框架配置文件的,程序fork子进程了宝塔是不知道的,主进程就是宝塔开的那个

  • 暂无评论
年代过于久远,无法发表回答
🔝