본문으로 건너뛰기

퍼포먼스 벤치마크

정보

이 문서는 소켓API가 어느 정도의 네트워크 대역과 사양을 차지하는지 참고용으로 제공하는 데이터입니다. 실제 운영환경에 따라 벤치마크 결과는 달라질 수 있습니다.

테스트 환경

벤치마크 테스트는 다음과 같은 환경에서 진행되었습니다:

  • 측정 기간: 주말 오후 5시~10시 (피크 시간대)
  • 측정 대상: 대형 스트리머 4개, 중형 스트리머 3개 채널
  • 측정 이벤트: 모든 이벤트 수신 (chat, donation, etc)
  • 네트워크 환경: 1Gbps 유선 네트워크
  • 클라이언트: Node.js v18.x

소켓의 네트워크 대역폭 사용량

아래 데이터는 소켓으로 전달되는 모든 이벤트를 수신할 경우 발생되는 네트워크 트레픽의 측정 결과입니다.

데이터 명초당 수신 데이터시간당 예상 데이터량
대형 / 파비 A2.3 KB약 8.1 MB
대형 / 파비 B2.7 KB약 9.5 MB
대형 / 파비 C2.4 KB약 8.4 MB
대형 / 파비 D3.3 KB약 11.6 MB
중형 / 파비 A1.7 KB약 6.0 MB
중형 / 파비 B1.5 KB약 5.3 MB
중형 / 파비 C1.37 KB약 4.8 MB

네트워크 사용량 분석

평균 사용량

평균 데이터를 2Kbps 기준으로 예상 시 스트리머 100명당 예상 네트워크 대역 사용은 0.2Mbps 정도입니다.

피크 시간대 고려사항

채팅 서버의 특성상, 실제 피크 시간대의 데이터 사용량은 평균보다 훨씬 높을 수 있습니다. 위 측정 데이터는 일반적인 피크 시간대의 샘플링 결과이며, 특별한 이벤트나 방송 상황에 따라 트래픽이 급증할 수 있습니다.

권장 네트워크 대역폭

안정적인 서비스 운영을 위해 다음과 같은 네트워크 대역폭을 권장합니다:

  • 기본 권장: 스트리머 100명당 1Mbps
  • 계산 방식: (평균 사용량 0.2Mbps) × (피크 고려 5배 버퍼) = 1Mbps

시스템 리소스 사용량

CPU 사용량

  • 일반적인 상황: 1-2% (4코어 기준)
  • 피크 시간대: 5-10% (4코어 기준)

메모리 사용량

  • 기본 사용량: 약 50MB
  • 스트리머 100명당 추가 사용량: 약 20MB
  • 권장 최소 메모리: 512MB

최적화 팁

  1. 이벤트 필터링

    • 필요한 이벤트만 수신하도록 설정 (setReceiver 참고)
    • 불필요한 채팅 데이터 수신 제한
  2. 연결 관리

    • 안정적인 네트워크 환경 사용 권장
    • 자동 재연결 로직 구현
  3. 모니터링

    • 네트워크 대역폭 사용량 모니터링
    • 시스템 리소스 사용량 주기적 체크