对于长时间运行的 PHP 程序,各位大佬是如何预防程序假死挂起的呢?

2018 年 11 月 14 日
 echo404

如题,各位大佬有没有什么好的方式去监控假死的程序呢?

6955 次点击
所在节点    PHP
20 条回复
askfilm
2018 年 11 月 14 日
定时重启
OMGZui
2018 年 11 月 14 日
定时重启+supervisor 监控
echo404
2018 年 11 月 14 日
@askfilm 如果在定时重启之前,进程就假死掉了,那么在重启之前,业务岂不是都堵塞在那了
echo404
2018 年 11 月 14 日
@OMGZui supervisor 不是监控进程异常退出么?对于那种假死挂起的进程也能监控出来么?
cloverstd
2018 年 11 月 14 日
健康检查
echo404
2018 年 11 月 14 日
@cloverstd 怎么健康检查,萌新不是很懂
skymei
2018 年 11 月 14 日
如果这种持续运行的消费者,生产者模式,我觉得还是搞清楚为什么假死比较好..,监控手段肯定有一点延迟
Exceptions
2018 年 11 月 14 日
可以做个心跳包
x66
2018 年 11 月 14 日
多部署几份,如果全挂了就找原因吧。
anyele
2018 年 11 月 14 日
先找为什么会死
via
2018 年 11 月 14 日
楼主可以参考一下 laravel 的 shedule,或者使用 supervisor 等 pm 工具
lujiajing1126
2018 年 11 月 14 日
为什么不是找到假死的原因
zakokun
2018 年 11 月 14 日
不可能莫名其妙就 i 假死的,要确认具体原因
pandanrain
2018 年 11 月 14 日
visonme
2018 年 11 月 14 日
前面都提到了,定时重启,健康检查(模拟网络通信中心跳包方式来处理)
但是最好的方式还是先假设下可能假死的原因,然后针对各种原因去做方案吧
0xff0x77
2018 年 11 月 14 日
一般一个程序,是不可能无缘无故假死的,楼主可能是 windows 程序用多了,得到了假死这个概念。
假死一定要找到原因,如果是内存溢出,不会找调用栈的话,考虑定时重启,当然治标不治本。
Joyboo
2018 年 11 月 15 日
我们目前是运维做了一个监控警报,监控那几个进程,挂掉了就电话邮件微信报警,然后每天凌晨定时重启
geligaoli
2018 年 11 月 15 日
php 长期运行,几乎肯定会死的。我都是每次运行玩一批任务就退出,在 shell 脚本中循环调用。
qianbi6
2018 年 11 月 15 日
@geligaoli php 用 swoole 写的一个队列一年都没挂啊
mingyun
2018 年 11 月 29 日
@qianbi6 swoole 这么 6

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/507848

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX