使用supervisord管理swoole服务踩过的一个坑

首页 编程分享 EXPERIENCE 正文

anoty 转载 编程分享 2019-07-06 09:58:28

简介 录到服务器上,执行命令ps -ef | grep php | wc -l发现,swoole服务...


在一次发版之后,例行去看监控的时候,我发现某一台服务器的内存使用量不正常,比其他服务的内存使用量高了将近一倍。

我登录到服务器上,执行命令

ps -ef | grep php | wc -l

发现,swoole服务的worker进程数量比我们设置的数量高了一倍。

如果你以为我要写一大段迷宫似找坑经验,那你就大错特错了。

我凭我对swoole、supervisord的了解,很快就意识到这是由于supervisord的stopwaitsecs参数设置过短(默认10s),而swoole在收到关闭信号的时候,会等待子进程的事件循环为空才会关闭子进程,如果这个过程超过10s,主进程就会被强制kill掉,然后子进程由于没有收到关闭信号,一直没有被kill掉。

解决方案很简单,将supervisord配置项改一下即可

stopwaitsecs=60 Id你也可以调的更大

填坑,有时也是很简单的。


转载链接:https://my.oschina.net/u/222608/blog/1922463


Tags:


本篇评论 —— 揽流光,涤眉霜,清露烈酒一口话苍茫。


    声明:参照站内规则,不文明言论将会删除,谢谢合作。


      最新评论




ABOUT ME

Blogger:袅袅牧童 | Arkin

Ido:PHP攻城狮

WeChat:nnmutong

Email:nnmutong@icloud.com

标签云