Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

Node.js agent.maxFreeSockets 속성 완벽 가이드


agent.maxFreeSockets 속성은 유휴(free) 상태로 열어 둘 소켓(socket)의 최대 개수를 정의합니다. 이 속성은 Node.js의 http 모듈 인터페이스에 포함되어 있으며, keepAlive 옵션이 활성화된 에이전트에서만 실질적으로 적용됩니다.

문법

agent.maxFreeSockets : number

매개변수

이 속성은 다음과 같은 매개변수를 사용합니다.

  • number – 유휴 상태에서 유지할 수 있는 소켓의 개수를 지정합니다. 기본값은 256입니다.

예제

maxFreeSockets.js라는 이름의 파일을 생성한 뒤 아래 코드를 복사해 붙여넣습니다. 파일 작성이 끝나면 다음 명령어로 코드를 실행할 수 있습니다.

node maxFreeSockets.js

maxFreeSockets.js

// agent.maxFreeSockets 데모 예제

// http 및 agentkeepalive 모듈 불러오기
const http = require('http');
const agent = require('agentkeepalive');

const keepaliveAgent = new agent({
   maxSockets: 100,
   maxFreeSockets: 10,
   timeout: 60000, // 활성 소켓을 60초 동안 keepalive 유지
   freeSocketTimeout: 30000, // 유휴 소켓을 30초 동안 keepalive 유지
});

const options = {
   host: 'tutorialspoint.com',
   port: 80,
   path: '/',
   method: 'GET',
   agent: keepaliveAgent,
};
console.log("Max free sockets: ", keepaliveAgent.maxFreeSockets);
console.log('[%s] agent status changed: %j', Date(),
keepaliveAgent.getCurrentStatus());

실행 결과

C:\home\node>> node maxFreeSockets.js
Max free sockets: 10
[Fri Apr 30 2021 12:21:12 GMT+0530 (India Standard Time)] agent status
changed:
{"createSocketCount":0,"createSocketErrorCount":0,"closeSocketCount":0,"errorSocketCount":0,"timeoutSocketCount":0,"requestCount":0,"freeSockets":{},"sockets":{},"requests":{}}

실행 결과에서 확인할 수 있듯이, 설정한 maxFreeSockets 값인 10이 콘솔에 그대로 출력됩니다. 또한 에이전트의 현재 상태 정보(생성된 소켓 수, 종료된 소켓 수, 요청 수, 유휴 소켓 목록 등)가 JSON 형태로 함께 표시됩니다.

핵심 정리

  • maxFreeSocketskeepAlivetrue일 때만 적용됩니다.
  • 기본값은 256이며, 서버 환경에 맞게 조절하면 리소스를 효율적으로 관리할 수 있습니다.
  • 유휴 소켓을 재사용하면 매번 새로운 TCP 연결을 맺는 오버헤드를 줄여 전체 요청 처리 성능이 향상됩니다.