반응형
최근 Node.js에서 많은 메모리 사용량으로 인해 서버가 터지는 일이있었다.
Node.js 환경에서 메모리 사용량을 확인하는 방법에 대해 알아보자
메모리 확인
Node.js에서는 아래와 같은 명령어로 메모리 사용량을 확인할 수 있다.
process.memoryUsage()
해당 메서드를 실행시킨 결과를 콘솔에 찍어보면 아래와 같은 내용이 나온다.
{
rss: 4935680,
heapTotal: 1826816,
heapUsed: 650472,
external: 49879,
arrayBuffers: 9386
}
해당 필드가 각각 무엇을 의미하는지 궁금하면 아래 링크에서 참고하도록하자.
https://nodejs.org/api/process.html#processmemoryusage
반응형
여기서 확인할 것은 heapUsed이다. heapUsed는 byte 값으로 나오기때문에 1024로 2번 나눠서 MB로 변환해준다음 확인해보자.
const used1 = process.memoryUsage().heapUsed / 1024 / 1024;
console.log(`약 ${Math.round(used1 * 100) / 100} MB의 메모리를 사용중입니다.`);
const test1 = Number(undefined); // NaN
const test2 = Number(null); // 0
const test3 = Number(0); // 0
const test4 = Number('2002'); // 2002
const used2 = process.memoryUsage().heapUsed / 1024 / 1024;
console.log(`약 ${Math.round(used2 * 100) / 100} MB의 메모리를 사용중입니다.`);
//@ts-ignore
const test5 = parseInt(undefined); // NaN
//@ts-ignore
const test6 = parseInt(null); // NaN
//@ts-ignore
const test7 = parseInt(0); // NaN
const test8 = parseInt('2022'); // NaN
const used3 = process.memoryUsage().heapUsed / 1024 / 1024;
console.log(`약 ${Math.round(used3 * 100) / 100} MB의 메모리를 사용중입니다.`);
위와 같은 예제 코드를 실행하면 다음과 같은 실행화면을 얻을 수 있다.
2022/12/05 추가
아래 코드를 nodejs에서 사용시 0.5초마다 메모리 사용량을 확인 할 수 있다.
setInterval(() => {
const memoryData = process.memoryUsage();
const memoryUsage = {
rss: `${memoryData.rss / 1024 / 1024} MB`,
heapTotal: `${memoryData.heapTotal / 1024 / 1024} MB`,
heapUsed: `${memoryData.heapUsed / 1024 / 1024} MB`,
external: `${memoryData.external / 1024 / 1024} MB`,
};
console.log(memoryUsage);
}, 500);
반응형
'Programming > Node.js' 카테고리의 다른 글
[Node.js] DeprecationWarning: Buffer() is deprecated due to security and usability issues... 에러 (0) | 2022.12.13 |
---|---|
[Node.js] Error: bind EADDRINUSE null:80 (0) | 2022.12.08 |
[Node.js] Node.js에서 base64로 문자열 Encoding, Decoding 하는 방법 (2) | 2022.08.30 |
[Node.js] Express.js에서 Multer로 S3에 이미지를 여러장 업로드하는 방법 (0) | 2022.08.12 |
[Node.js] node.js에서 object를 s3에 올리는 방법 (1) | 2022.07.03 |