V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
v2future
V2EX  ›  Node.js

Linux 上, nodejs 程序内存溢出问题,如何排查

  •  
  •   v2future · 2018-07-30 17:23:46 +08:00 · 6087 次点击
    这是一个创建于 2337 天前的主题,其中的信息可能已经有所发展或是发生改变。
    写了一个 nodejs 小程序,部署在 linux 上,跑五六个小时后,内存占用就达到 90%,要怎么排查呢
    网上搜索的一圈,说用 heapdump,但这个在 linux 上部署不了,大家有办法吗
    5 条回复    2018-08-16 16:46:59 +08:00
    ginozhu
        1
    ginozhu  
       2018-07-30 17:40:36 +08:00
    heapdump 为啥 linux 上部署不了?

    heapdump 不行的话,用 inspect,然后远端用 chrome devtool 也可以 dump 出 heap
    xiaoxin8888
        2
    xiaoxin8888  
       2018-07-30 17:47:23 +08:00
    检查下代码, 是不是有数组一直往里加没有清的情况.
    lzvezr
        3
    lzvezr  
       2018-07-30 18:15:53 +08:00 via Android
    其实可以用 alinode
    jerry4718
        4
    jerry4718  
       2018-08-07 18:34:35 +08:00
    是不是有事务没提交的
    v2future
        5
    v2future  
    OP
       2018-08-16 16:46:59 +08:00
    上一次 headdump 没装上是因为 g++没安装
    把内存快照导入 chrome 控制台后发现存在大量未销毁 socket 对象
    排查代码,是因为 close socket 的代码写错了,而且没打印异常日志。
    现在正常了,程序跑一个礼拜,内存都没有增长。
    谢谢大家了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5838 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 01:55 · PVG 09:55 · LAX 17:55 · JFK 20:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.