Apache 沉睡进程导致 OOM 的问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
YvesX
V2EX    Django

Apache 沉睡进程导致 OOM 的问题

  •  
  •   YvesX 2018-04-17 18:11:12 +08:00 2696 次点击
    这是一个创建于 2734 天前的主题,其中的息可能已经有所发展或是发生改变。
    Apache2+mod_wsgi+Django,其中 wsgi 工作在 DaemonProcess 模式下,Apache 的 MPM 模式是 event。
    Django 有两个应用需要 load 大体积文件,所以每个 apache 进程占用内存 1.5GB 左右。服务器资源是双核+8GB。

    现在的问题是服务器会时不时自行启动新的进程,而旧的进程却并没有被释放掉。猜测是在尝试重启进程,因为 graceful restart Apache 的时候会有相同的进程沉积问题。
    由于我们 Apache 进程开销很大,所以这样几次以后就会占满内存导致服务崩溃,活不过半天。
    而定期重启的 dirty hack 也不是很理想,因为服务整个启动起来会花十多秒,如果太频繁会影响可用性。

    Apache 的错误日志已经是 info 级别,只能看到 wsgi 进程启动的事实,看不到任何别的异常。

    请问这样的问题怎样排查和解决呢?
    8 条回复    2018-04-17 20:17:50 +08:00
    tailf
        1
    tailf  
       2018-04-17 18:13:56 +08:00   1
    想办法把 Apache 换了。
    clino
        2
    clino  
       2018-04-17 18:14:14 +08:00   1
    话说为什么不换成 nginx+uwsgi 之类的部署方式来解决这个问题呢?
    uwsgi 还可以设置内存上限,超过了自动 kill worker 然后重启
    YvesX
        3
    YvesX  
    OP
       2018-04-17 18:21:21 +08:00
    @tailf #1
    @clino #2

    谢谢建议,我会尝试一下。
    myyou
        4
    myyou  
       2018-04-17 18:30:06 +08:00   1
    nginx+gunicorn+django 很方便,nginx 本身比 Apache 占用也小
    julyclyde
        5
    julyclyde  
       2018-04-17 19:39:45 +08:00   1
    load 大文件的事可不可以拆出去做呢?
    MeteorCat
        6
    MeteorCat  
       2018-04-17 20:02:57 +08:00 via Android   1
    看下是不是 apahe 加载了一些模块导致的,apache 历史包裹很多,你看下某些 Mod 在吃资源
    YvesX
        7
    YvesX  
    OP
       2018-04-17 20:15:23 +08:00
    @myyou #4

    谢谢你的建议,结合上面几位朋友的说法,换了你所说的组合。开销减少并不是很明显(每个进程少了 80MB 左右),但问题似乎得到了彻底解决。
    YvesX
        8
    YvesX  
    OP
       2018-04-17 20:17:50 +08:00
    @MeteorCat #6
    现在已经换掉 Apache 了,但在之前的观察中,每个新建的 Apache 进程内存占用都是基本一致的,略大于那几个大文件的体积和。所以应该就是 WSGI 的问题,只是确实不太想得通为什么会出现这种情况……
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2640 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 06:30 PVG 14:30 LAX 23:30 JFK 02:30
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86