视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
workerman可以多进程执行吗
2020-11-03 18:23:12 责编:小采
文档


为了充分发挥服务器多CPU的性能,WorkerMan默认支持多进程多任务。

WorkerMan开启一个主进程和多个子进程对外提供服务, 主进程负责监控子进程,子进程独自监听网络连接并接收发送及处理数据,由于进程模型简单,使得WorkerMan更加稳定,更加高效。 (推荐学习: workerman教程)

创建一个主进程(守护进程),一旦启动长时间运行在后台,即使关掉浏览器页面.

主线程定时查询数据库(MySQL),一旦发现有符合条件的URL(可能多条),即创建对应的数量的子进程.

子进程也需要长时间存在,定时轮询URL对应的服务器取回数据.

子进程一旦取回所需要的数据,将结果保存到数据库,自我结束(或被主进程关闭).

进程数设置原则

1、每个进程占用内存之和需要小于总内存(一般来说每个业务进程占用内存大概40M左右)

2、如果是IO密集型,也就是业务中涉及到一些阻塞式IO,比如一般的访问Mysql、Redis等存储都是阻塞式访问的,进程数可以开大一些,如配置成CPU核数的3倍。

如果业务中涉及的阻塞等待很多,可以再适当加大进程数,例如CPU核数的5倍甚至更高。注意非阻塞式IO属于CPU密集型,而不属于IO密集型。

3、如果是CPU密集型,也就是业务中没有阻塞式IO开销,例如使用异步IO读取网络资源,进程不会被业务代码阻塞的情况下,可以把进程数设置成和CPU核数一样

下载本文
显示全文
专题