-
-
Notifications
You must be signed in to change notification settings - Fork 33.7k
Description
- Version:
v8.9.0 - Platform:
Linux cms-03 4.4.0-1052-aws #61-Ubuntu SMP Mon Feb 12 23:05:58 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux - Subsystem:
NaN
poc.js:
const http = require('http');
const agent = new http.Agent({
keepAlive: true
});
function get(id) {
http.get({
host: 'www.google.com',
path: '/generate_204',
agent
}, () => {
console.log('get response #' + id);
});
}
for (let i = 0; i < 5; i++) {
get(i);
}run it with why-is-node-running:
$ why-is-node-running poc.js
probing program /root/poc.js
kill -SIGUSR1 32671 for logging
get response #0
get response #4
get response #3
get response #1
get response #2
There are 11 handle(s) keeping the process running
# SIGNALWRAP
/usr/lib/node_modules/why-is-node-running/include.js:3 - process.on('SIGUSR1', function() { why() })
# TCPWRAP
/root/poc.js:8 - http.get({
# TCPWRAP
/root/poc.js:8 - http.get({
# TCPWRAP
/root/poc.js:8 - http.get({
# TCPWRAP
/root/poc.js:8 - http.get({
# TCPWRAP
/root/poc.js:8 - http.get({
# HTTPPARSER
(unknown stack trace)
# HTTPPARSER
(unknown stack trace)
# HTTPPARSER
(unknown stack trace)
# HTTPPARSER
(unknown stack trace)
# HTTPPARSER
(unknown stack trace)
if there are requests to the same endpoint, the socket never closed and those destroys never get called.
old description
Hi team,
Thanks for the awesome job!
I am using the async_hooks in our production, but I've found some memory issue that possible related to async_hooks.
For debugging, I created a counter variable:
And I got the following chart for the past 1.5 days (2018-04-05T13:06:12.724Z to 2018-04-06T22:46:53.753Z)
As check with pm2 info, the the chart above drop down to 0 is the time pm2 when restart the application.
And here is the memory usage:
As comparing, this is what the memory looks like one week before:
Our application is a web service running on top of restify.
The memory is consumption may beyond your expectation, it's because of I am holding some resource after init is called and those resource's releasing require destroy to be called.
Any ideas?


