swoole的task配置该如何配置

现在的服务器是 2核4GB
swoole构造的服务端。拥有600个客户端(会持续增加)
每分钟客户端会往服务端发送一个心跳,所以理论上是一次性会接收到600个心跳,然后扔往task进行逻辑处理。
我一个进程的耗时大概是 200ms

文档:

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

假设每个进程占用40M内存,100个进程就需要占用4G内存
task操作的次数必须小于onTask处理速度,如果投递容量超过处理能力,task会塞满缓存区,导致worker进程发生阻塞。worker进程将无法接收新的请求

那个我最大是可以设置 task_worker_num=>4000?。 
1.什么情况下算投递容量超过处理能力,是指第二次心跳上来之前第一次600条心跳还没处理完吗?
2.task_max_request 和max_request设置进程的最大任务数是什么意思?超过数值自动退出之后会开个新的进程继续运行吗?。 之前的连接是否都会断开。


手掌心
浏览 393回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP