퍼포먼스 벤치마크
정보
이 문서는 소켓API가 어느 정도의 네트워크 대역과 사양을 차지하는지 참고용으로 제공하는 데이터입니다. 실제 운영환경에 따라 벤치마크 결과는 달라질 수 있습니다.
테스트 환경
벤치마크 테스트는 다음과 같은 환경에서 진행되었습니다:
- 측정 기간: 주말 오후 5시~10시 (피크 시간대)
- 측정 대상: 대형 스트리머 4개, 중형 스트리머 3개 채널
- 측정 이벤트: 모든 이벤트 수신 (chat, donation, etc)
- 네트워크 환경: 1Gbps 유선 네트워크
- 클라이언트: Node.js v18.x
소켓의 네트워크 대역폭 사용량
아래 데이터는 소켓으로 전달되는 모든 이벤트를 수신할 경우 발생되는 네트워크 트레픽의 측정 결과입니다.
데이터 명 | 초당 수신 데이터 | 시간당 예상 데이터량 |
---|---|---|
대형 / 파비 A | 2.3 KB | 약 8.1 MB |
대형 / 파비 B | 2.7 KB | 약 9.5 MB |
대형 / 파비 C | 2.4 KB | 약 8.4 MB |
대형 / 파비 D | 3.3 KB | 약 11.6 MB |
중형 / 파비 A | 1.7 KB | 약 6.0 MB |
중형 / 파비 B | 1.5 KB | 약 5.3 MB |
중형 / 파비 C | 1.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
최적화 팁
-
이벤트 필터링
- 필요한 이벤트만 수신하도록 설정 (setReceiver 참고)
- 불필요한 채팅 데이터 수신 제한
-
연결 관리
- 안정적인 네트워크 환경 사용 권장
- 자동 재연결 로직 구현
-
모니터링
- 네트워크 대역폭 사용량 모니터링
- 시스템 리소스 사용량 주기적 체크