V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
v2future
V2EX  ›  Node.js

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

  •  
  •   v2future · Jul 30, 2018 · 6891 views
    This topic created in 2834 days ago, the information mentioned may be changed or developed.
    写了一个 nodejs 小程序,部署在 linux 上,跑五六个小时后,内存占用就达到 90%,要怎么排查呢
    网上搜索的一圈,说用 heapdump,但这个在 linux 上部署不了,大家有办法吗
    5 replies    2018-08-16 16:46:59 +08:00
    ginozhu
        1
    ginozhu  
       Jul 30, 2018
    heapdump 为啥 linux 上部署不了?

    heapdump 不行的话,用 inspect,然后远端用 chrome devtool 也可以 dump 出 heap
    xiaoxin8888
        2
    xiaoxin8888  
       Jul 30, 2018
    检查下代码, 是不是有数组一直往里加没有清的情况.
    lzvezr
        3
    lzvezr  
       Jul 30, 2018 via Android
    其实可以用 alinode
    jerry4718
        4
    jerry4718  
       Aug 7, 2018
    是不是有事务没提交的
    v2future
        5
    v2future  
    OP
       Aug 16, 2018
    上一次 headdump 没装上是因为 g++没安装
    把内存快照导入 chrome 控制台后发现存在大量未销毁 socket 对象
    排查代码,是因为 close socket 的代码写错了,而且没打印异常日志。
    现在正常了,程序跑一个礼拜,内存都没有增长。
    谢谢大家了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   949 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 23:34 · PVG 07:34 · LAX 16:34 · JFK 19:34
    ♥ Do have faith in what you're doing.