pm2 supervisor 进程监控优劣分别是什么? 以及分别的应用场合选择?

2019-07-14 09:07:46 +08:00
 dafengchui

一直在用这 2 个,除了 supervisor 有 web 可以直观看到监控进程外,其它没撒区别,但是作为强迫症,所以还是想请教下各位,它们的应用场合和优劣分别是什么?

6184 次点击
所在节点    程序员
18 条回复
lddsb
2019-07-14 09:38:15 +08:00
同问
dcoder
2019-07-14 10:00:31 +08:00
都应该被 Systemd 换掉
banxi1988
2019-07-14 10:11:59 +08:00
不用问,问就 systemd

pm2 是基于 NodeJs 的.,一些日志及实用性方面都比 supervisor 强.
supervisor 基于 Python 实现的我个人觉得略简陋.
如果要在这两者之中选择你会爱上 pm2.

但是现在一般直接用 systemd. 熟悉了之后会发现 systemd 跟 pm2 之类的不是一个级别的.
当然简单来说 systemd 更灵活更强大, 说起来使用上也不复杂. 而且你总会用得上的.
dafengchui
2019-07-14 11:04:37 +08:00
systemd 太杂乱了,要分别为每个服务建立, pm2 和 supervisor 可以一个界面看完.
dafengchui
2019-07-14 14:47:31 +08:00
我意思是: pm2 list 或者 supervisorctl 可以一次性看到监控的进程清单, 但是 systemd 就无法看到,或者 systemd 也有对应的命令,我不知道? 如果是请指点.
ispinfx
2019-07-14 14:57:43 +08:00
pm2 感觉不是稳定,经常性丢失!
GGGG430
2019-07-14 15:01:38 +08:00
战略性插旗
zjb861107
2019-07-14 15:09:03 +08:00
sudo systemctl status
dafengchui
2019-07-14 15:23:18 +08:00
@zjb861107 你这个就是我说的杂乱.
chenqh
2019-07-14 15:47:08 +08:00
systemctl 我一般用来运行不是自己写的服务,因为不是我写的服务,所以服务足够稳定
systemctl 在我看来缺点就是 systemctl start service 需要 systemctl status service 来检查状态,supervisor 直接启动就知道服务有没有启动成功了,但是 supervisorctl tail -f 好像也有问题
dafengchui
2019-07-14 15:50:49 +08:00
@chenqh supervisorctl tail -f 这个我特意去抄了 supervisor 的 github 得 issue 一个遍,记得里面有人给了方案,我试了下,504 是没了,也能看到些 log 了,但是没鸟用,好过没有..
sighforever
2019-07-14 16:34:32 +08:00
用了 docker 就没这方面的烦恼了
version
2019-07-14 17:15:59 +08:00
两个感觉不一样的场景吧,pm2 的负载很厉害呢,多进程部署对 nodejs 很重要呢
jaskle
2019-07-14 20:05:55 +08:00
一直用 pm2,简单。连日志都不用自己写文件。不要说我日志影响性能,经过大量实验证明日志对性能影响与管道缓存和另一头的读取速度有关。不过 pm2 不行,日志读取速度慢,受限于 node 的单逻辑线程。我在 Windows 用 iocp 采集控制台日志,单程序能达到 20MB/s 的日志采集速度。对性能一点影响都没有。反而自己写到文件速度还慢。
dcoder
2019-07-15 02:25:18 +08:00
@dafengchui
我以前跟你一样的想法, 也是倾向于用 supervisor, 觉得干净整洁,只有我自己的 sevice 信息.
后来发觉用熟 systemd 是必须的, 因为现在它是 Linux 事实性的标准, 比 supervisor 稳定多了.
你后来会发现, 为了让 supervisor 稳定可靠, 最好是用 systemd 监控它...
dcoder
2019-07-15 02:25:55 +08:00
@dafengchui
其他的 service, 比如 nginx, 甚至是 docker, 其实也得用 systemd 监控.
systemd 里面那些 "杂乱" 的信息,你迟早得慢慢去理解...
如果想用编程的方法控制 systemd, 最好的 lib 在 golang community
coreos go-systemd
love
2019-07-15 07:07:32 +08:00
之前用的 pm2,不是太满意,但没切换 systemd 因为有 node 多进程支持,后来发现 node 本身多进程就已经很完善了,就用了一个很轻量的 node 多进城库自己程序加几行代码就实现了
julyclyde
2019-07-15 16:26:01 +08:00
@dafengchui 只要其中一个配置写错,supervisord 就起不来

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

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

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

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

© 2021 V2EX