worker_num

设置启动的Worker进程数。

  • 业务代码是全异步非阻塞的,这里设置为CPU核数的1-4倍最合理
  • 业务代码为同步阻塞,需要根据请求响应时间和系统负载来调整,例如:100-500
  • 默认设置为SWOOLE_CPU_NUM,最大不得超过SWOOLE_CPU_NUM * 1000

比如1个请求耗时100ms,要提供1000QPS的处理能力,那必须配置100个进程或更多。但开的进程越多,占用的内存就会大大增加,而且进程间切换的开销就会越来越大。所以这里适当即可。不要配置过大。

  • 假设每个进程占用40M内存,100个进程就需要占用4G内存


  • zhaoxingya

    如果是websocket服务,是不是一个长连接会单独占用一个进程呢

  • 北极以北☏

    一个进程可以维持多个websocket连接,不会独占

  • 年轻就该奋斗

    请教一个问题 worker_num和task_worker_num 之间是什么关系呢?

  • Mike Lu

    一个worker进程下面可以创建多个task进程处理子例程

  • yichen

    能否让一个websocket 长连接 使用多个核cpu