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