PM2 God Daemon Memory Leak (6.0.14)
Hi,
I’m seeing what appears to be a serious memory leak in the PM2 God Daemon on PM2 v6.0.14.
Environment PM2 version: 6.0.14 Node.js version: 20.20.2 OS: Linux x64 Debian 12 Architecture: AMD EPYC Workload: Long-running websocket game servers Multiple Node.js cluster processes uWebSockets.js High-frequency websocket traffic Problem
The PM2 God Daemon process gradually grows to very large memory usage over time.
After about 22 days uptime:
PM2 daemon RSS reached ~5.7GB System memory pressure became dangerous Applications themselves remained healthy
The issue appears isolated to the PM2 daemon process.
Important Details Logs are NOT large
~/.pm2/logs size is only:
3.5M
So this does not appear to be caused by large log files.
Watch mode is disabled
All applications show:
watching: disabled Restart counts are low
Most processes only restarted a few times.
No restart storm is occurring.
Applications remain stable
Game servers and backend services continue running normally while the PM2 daemon memory keeps increasing.
Current PM2 Report pm2d version : 6.0.14 node version : 20.20.2 uptime : 31599min
Processes are running in cluster mode.
Suspicion
This may be related to:
PM2 internal IPC/event bus stdout/stderr stream handling cluster mode worker communication websocket high-frequency output daemon-side buffering/caching leak
Even though actual log files remain very small.
Temporary Fix
Restarting the PM2 daemon fixes the memory usage:
pm2 save pm2 kill pm2 resurrect
After restart, daemon memory returns to normal.
Additional Notes No watch mode No large logs No massive restart loops Memory growth is only observed in the PM2 daemon Workload is websocket-heavy and long-running
Please let me know if additional debug information would help.
Thanks.
--- PM2 report ---------------------------------------------------------------- Date : Sat May 16 2026 16:13:59 GMT+0800 (Taiwan Standard Time)
--- Daemon ------------------------------------------------- pm2d version : 6.0.14 node version : 20.20.2 node path : /usr/bin/sh argv : /usr/bin/node,/usr/lib/node_modules/pm2/lib/Daemon.js argv0 : /usr/bin/node user : root uid : 0 gid : 0 uptime : 31599min
--- CLI ---------------------------------------------------- local pm2 : 6.0.14 node version : 20.20.2 node path : /usr/bin/pm2 argv : /usr/bin/node,/usr/lib/node_modules/pm2/bin/pm2,report argv0 : /usr/bin/node user : root uid : 0 gid : 0
--- System info -------------------------------------------- arch : x64 platform : linux type : Linux cpus : AMD EPYC Processor cpus nb : 16 freemem : 17771601920 totalmem : 33632563200 home : /root
--- PM2 list ----------------------------------------------- ┌────┬──────────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐ │ id │ name │ namespace │ version │ mode │ pid │ uptime │ ↺ │ status │ cpu │ mem │ user │ watching │ ├────┼──────────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤ │ 6 │ alpha │ default │ 0.1.773 │ cluster │ 3695178 │ 3D │ 0 │ online │ 3.6% │ 246.3mb │ root │ disabled │ │ 5 │ beta │ default │ 0.1.573 │ cluster │ 3694641 │ 3D │ 1 │ online │ 0% │ 380.7mb │ root │ disabled │ │ 1 │ center │ default │ 0.0.183 │ cluster │ 3676961 │ 3D │ 8 │ online │ 7.1% │ 164.1mb │ root │ disabled │ │ 2 │ db │ default │ 0.0.111 │ cluster │ 3677294 │ 3D │ 7 │ online │ 7.1% │ 1.9gb │ root │ disabled │ │ 8 │ gs0 │ default │ 0.3.86 │ cluster │ 15117 │ 3D │ 10 │ online │ 3.6% │ 452.4mb │ root │ disabled │ │ 9 │ gs1 │ default │ 0.3.86 │ cluster │ 15251 │ 3D │ 3 │ online │ 0% │ 446.3mb │ root │ disabled │ │ 17 │ gs10 │ default │ 0.3.86 │ cluster │ 16289 │ 3D │ 3 │ online │ 0% │ 425.0mb │ root │ disabled │ │ 10 │ gs2 │ default │ 0.3.86 │ cluster │ 15393 │ 3D │ 4 │ online │ 0% │ 469.3mb │ root │ disabled │ │ 11 │ gs3 │ default │ 0.3.86 │ cluster │ 15525 │ 3D │ 3 │ online │ 0% │ 446.6mb │ root │ disabled │ │ 12 │ gs5 │ default │ 0.3.86 │ cluster │ 15650 │ 3D │ 3 │ online │ 3.6% │ 432.5mb │ root │ disabled │ │ 13 │ gs6 │ default │ 0.3.86 │ cluster │ 15771 │ 3D │ 2 │ online │ 3.6% │ 440.4mb │ root │ disabled │ │ 14 │ gs7 │ default │ 0.3.86 │ cluster │ 15906 │ 3D │ 3 │ online │ 3.6% │ 405.8mb │ root │ disabled │ │ 15 │ gs8 │ default │ 0.3.86 │ cluster │ 16038 │ 3D │ 4 │ online │ 0% │ 468.9mb │ root │ disabled │ │ 16 │ gs9 │ default │ 0.3.86 │ cluster │ 16157 │ 3D │ 4 │ online │ 0% │ 438.7mb │ root │ disabled │ │ 7 │ login │ default │ 0.0.231 │ cluster │ 878482 │ 2D │ 8 │ online │ 3.6% │ 165.3mb │ root │ disabled │ │ 3 │ role │ default │ 0.1.713 │ cluster │ 3844387 │ 3D │ 6 │ online │ 10.7% │ 735.6mb │ root │ disabled │ └────┴──────────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘ Module ┌────┬──────────────────────────────┬───────────────┬──────────┬──────────┬──────┬──────────┬──────────┬──────────┐ │ id │ module │ version │ pid │ status │ ↺ │ cpu │ mem │ user │ ├────┼──────────────────────────────┼───────────────┼──────────┼──────────┼──────┼──────────┼──────────┼──────────┤ │ 0 │ pm2-logrotate │ 3.0.0 │ 15355 │ online │ 0 │ 0% │ 78.9mb │ root │ └────┴──────────────────────────────┴───────────────┴──────────┴──────────┴──────┴──────────┴──────────┴──────────┘
--- Daemon logs -------------------------------------------- /root/.pm2/pm2.log last 20 lines:
Source: Unitech/pm2