Chef.Yeon
Code Cook
Chef.Yeon
전체 방문자
오늘
어제
  • 분류 전체보기 (230)
    • 게임 개발 (1)
      • Unity (1)
    • Android (27)
      • Kotlin (19)
      • 우아한테크코스 5기 (4)
    • Language (11)
      • 파이썬 (3)
      • Java (7)
    • DB (2)
      • SQL (16)
    • Spring (25)
    • 코딩테스트 (56)
    • Git (1)
    • TIL (85)
    • DevOps (6)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • rsocket
  • grafana
  • 내림차순
  • ec2
  • kibana
  • 문자열
  • 코틀린
  • til
  • MariaDB
  • Android
  • 파이썬
  • 에라토스테네스의 체
  • enum
  • 우아한테크코스
  • 프리코스
  • Docker
  • 레포지토리
  • kotlin
  • spring
  • 프로그래머스
  • 안드로이드
  • elasticsearch
  • 다이나믹 프로그래밍
  • SQL
  • 코딩테스트
  • Wil
  • java
  • 백준
  • 코틀린 인 액션
  • webflux

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Chef.Yeon

Code Cook

[커뮤 프로젝트] 서버 아키텍처 변경을 통한 성능 개선
TIL

[커뮤 프로젝트] 서버 아키텍처 변경을 통한 성능 개선

2023. 7. 2. 18:09

 

💻문제점

초기 서버 아키텍처 

기존 서버 아키텍처는 다음과 같이 하나의 EC2 서버에서 docker-compose를 통해 Streaming 서버, Transcoding 서버, Content 서버, Redis가 컨테이너로 구동되었다. 

 

OBS Studio로 방송을 켜고, K6를 활용해 VUser 2만명, Duration 30m 으로 설정한 뒤 방송 시청 요청을 테스트 해보았다.

 

테스트 결과, 청크 데이터를 전송하는 스트리밍 서버가 메모리와 CPU 사용량을 많이 차지 하여, 해당 서버를 분리하는 것이 하드 디스크 가용성이나 처리량 측면에서 효율적이라고 생각하였다.


🔍해결

변경된 서버 아키텍처

 

분리된 서버는 StreamingService이다. 이 서버는 RTMP 프로토콜을 사용하여 OBS로 부터 지속적으로 전송되는 데이터를 디코딩, 엔코딩한다.

 

위와 같이 서버 아키텍처를 변경하고 K6로 다시 테스트를 해보았다.

다음과 같이 요청 처리 실패율이 12%대에서 8%대로 감소한 것을 확인할 수 있다.

 

 

728x90

'TIL' 카테고리의 다른 글

[TIL - 20230914~15] Github Actions+Docker CI/CD 트러블슈팅  (0) 2023.09.15
[커뮤 프로젝트] 영상 파일 삭제 로직 (동기, 비동기 처리)  (0) 2023.07.04
[TIL - 20230628] 후원 비관적 락 -> Redis 분산 락 변경 (동시성)  (0) 2023.06.29
[TIL - 20230623] rsocket 채팅창에 후원 내역 띄우기  (0) 2023.06.24
[TIL - 20230622] K6 성능 테스트 시나리오 작성  (0) 2023.06.23
    'TIL' 카테고리의 다른 글
    • [TIL - 20230914~15] Github Actions+Docker CI/CD 트러블슈팅
    • [커뮤 프로젝트] 영상 파일 삭제 로직 (동기, 비동기 처리)
    • [TIL - 20230628] 후원 비관적 락 -> Redis 분산 락 변경 (동시성)
    • [TIL - 20230623] rsocket 채팅창에 후원 내역 띄우기
    Chef.Yeon
    Chef.Yeon
    보기 좋고 깔끔한 코드를 요리하기 위해 노력하고 있습니다.

    티스토리툴바