首页   注册   登录
 wsgzao 最近的时间轴更新
wsgzao

wsgzao

Keep Calm and Carry On
🏢  CFFEX / DevOps
V2EX 第 57018 号会员,加入于 2014-02-27 23:54:22 +08:00
今日活跃度排名 970
8 G 73 S 29 B
AdGuard 过滤规则分享
程序员  •  wsgzao  •  1 小时 45 分钟前  •  最后回复来自 id7368
4
使用 Monit 替代 Supervisor 自动化管理和监控服务小结
  •  1   
    Linux  •  wsgzao  •  1 天前  •  最后回复来自 wsgzao
    7
    大家现在都用什么免费或付费网络电话?
    问与答  •  wsgzao  •  32 天前  •  最后回复来自 ceet
    2
    Nginx 基础知识从小白到入门
  •  1   
    程序员  •  wsgzao  •  69 天前  •  最后回复来自 kidlj
    2
    微软出品的 Python 入门课程 - Python for Beginners
    程序员  •  wsgzao  •  74 天前  •  最后回复来自 Arrowing
    1
    Linux 日志切割神器 logroate 原理介绍和配置详解
  •  1   
    程序员  •  wsgzao  •  75 天前  •  最后回复来自 wsgzao
    1
    wsgzao 最近回复了
    @wellsc #4 引用一篇文章答复,https://blog.huoding.com/2015/02/11/419

    有时候,进程突然终止服务,可能是没有资源了,也可能是意外,比如说:因为 OOM 被杀;或者由于 BUG 导致崩溃;亦或者误操作等等,此时,我们需要重新启动进程。


    实际上,Linux 本身的初始化系统能实现简单的功能,无论是老牌的 SysVinit,还是新潮的 Upstart 或者 Systemd 均可,但它们并不适合处理一些复杂的情况,比如说:CPU 占用超过多少就重启;或者同时管理 100 个 PHP 实现的 Worker 进程等等,如果你有类似的需求,那么可以考虑试试 Monit 和 Supervisor,相信会有不一样的感受。

    让我们看看 Monit 的用法,假设我们要监控 Nginx 进程,一旦其 CPU 使用率连续 5 次轮询周期里均超过 50% 的话,就重启进程,此时就可以按照如下方式设置:

    check process nginx with pidfile /var/run/nginx.pid
    start program = "/etc/init.d/nginx start"
    stop program = "/etc/init.d/nginx stop"
    if cpu is greater than 50% for 5 cycles then restart
    Monit 根据 pidfile 轮询对应的进程是否健在,满足条件就执行 start/stop 等操作。如果进程本身不存在 pidfile,那么也可以使用 matching 语法来匹配进程。

    再让我们看看 Supervisor 的用法,假设我们要监控 100 个 PHP 实现的 Worker 进程,用来提供 Gearman 之类的服务,由于 PHP 本身运行模式的缘故,为了避免严重的内存泄漏问题,我们设定 PHP 进程服务一定次数或一段时间后就自动退出,这时候我们需要启动新的 Worker 进程,以便总数维持不变,此时就可以按照如下方式设置:

    [program:worker]
    command=/usr/bin/php /path/to/worker.php
    process_name=%(program_name)s_%(process_num)02d
    numprocs=100
    autostart=true
    autorestart=true
    如果说 Supervisor 有什么缺点的话,那么首当其冲的是对使用者而言它不够透明:很多进程都是后台运行的,但 Supervisor 却要求必须改成前台运行。好在多数服务都提供了对应的配置选项,如果没有的话,我们也可以使用一些变通的方法:

    How can I supervise a daemon that puts itself into the background?
    Managing daemons with supervisor: no foreground mode available.
    不管用什么来监控进程,如果监控者本身挂了,那么被监控者无疑就失控了。此时需要考虑如何监控监控者本身,这似乎是一个递归问题,不过文章开头我们说过,Linux 本身的初始化系统就能实现简单的监控功能,以 SysVinit 为例,编辑 /etc/inittab 文件:

    SU:2345:respawn:/usr/bin/supervisord -c /etc/supervisord.conf
    改好后运行「 init q 」命令让其生效,然后 kill 掉 supervisor 进程看看会不会发生奇迹。

    注意:记得事先我们要配置 Supervisor 为 nodaemon=true 噢。
    @GM #1 需求场景不一样,两者你都可以试试,时间长了应该就可以更好的理解优缺点
    @julyclyde 算是刚需吧,要不然就 All in K8S
    @defunct9 没有注意过这个问题,可以测试验证下
    首先恭喜楼主入职 Shopee,我差不多已经来新加坡 1.5 年了,Blog 原文也一直在更新,10 月份刚申请 PR,如果明年运气好通过,我应该会再继续更新保险,买房,生育等经历吧。王氩在 GitHub 也分享了新加坡的经历,我简单在补充下薪资和生活成本,按新币计算*5=人民币

    ## 薪资结构

    从国内过来基本 5k 新币月薪起步,上至 20w 新币年薪也不存在封顶之说,新加坡税率低封顶 8%,一般人在 4%左右

    ## 生活成本

    > 大头主要集中在租房+吃

    HDB 合租主人房: 1100
    水电网: 50
    移动套餐: 9.9
    饭费: 20x30
    交通: 2x30
    健身: 99
    理发: 12
    其他: 100

    在没有明显压缩新加坡生活成本,按 1 人每月估算为 1w 人民币,如果是 2 个人差不多是 1.5w 人民币

    新加坡烟酒贵,食阁一般 4-7 新币一顿,但像海底捞这样的餐厅 50 新币起步+10%服务费+9%消费税,我在国内本身也不常吃就无所谓了,如果需要打打牙祭会通过 eatigo+shopback 以 5 折的价格探店

    ## 身份

    在没有获得 PR 永久居民身份之前,买房+看重疾+教育的成本是很高的。很多人从表面看到新加坡在安全,住房,教育,医疗做得都非常好,但在新加坡求过学或者长期居住过的人来说可能会给你另一种忠告,影响系数因人而异这里就不展开了。无论你身处哪里提升自己能力+情商才是铁饭碗。

    https://wsgzao.github.io/post/singapore/

    https://github.com/623637646/996.Leave
    @scriptB0y #28 谢谢分享细节,容器化想必都是大家正在做的事情
    @WoodenRobot #19 我写文章之前先用 Google 搜索了关键词,如果已经有写的比较好的就留言申请转载了,谢谢你分享的文章哈

    @guokeke #16 极客时间上张磊的《深入剖析 Kubernetes 》和《 Linux 性能优化实战》作者倪朋飞的《 Kubernetes 指南》都是优质的学习资料

    https://time.geekbang.org/column/intro/116

    https://kubernetes.feisky.xyz/
    @lxk11153 #6

    @Lax #7

    感谢 2 位补充非常棒的命令,不过还是需要提醒大家如果有命名冲突千万要谨慎处理
    @gwy15 #2 我们有在使用 monit 和 supervisord,不过已经开始按计划分批迁移至 k8s 容器,可能这个才是真正的趋势
    @jasonyang9 赞同,一般标准化的服务我们都写入到 systemd 作为初始化的一部分,当然容器的出现让我们看到更多的可能
    53 天前
    回复了 grufield 创建的主题 优惠信息 今天黑五有什么值得推荐的啊?
    @grufield #103 因为我在新加坡所以不能代表国内的情况,我主要想增加回国和访问其他国家的加速方案,目前通过 speedtest 测试速度未必准确,但是 190Mb 加速后差不多各个国家稳定在 30-50Mb 左右,延迟从 5ms 上升至 sg 6,hk 18, us 179,成绩和我之前已经买过的相比不算很好
    @lianyue13 #1 你可以试用 7 天,不满意直接申请退款,我主要是看中 Pure 无流量和速度限制,全球节点多且支持回国访问,目前在新加坡测试了北京的节点效果还行,我需要深入使用一段时间才能确认优缺点,不好意思没办法回复更多有价值的信息,你也可以网上搜索下评测
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   956 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 30ms · UTC 19:07 · PVG 03:07 · LAX 11:07 · JFK 14:07
    ♥ Do have faith in what you're doing.