본문 바로가기
미디어 트렌드

동영상 솔루션의 스트리밍 서버 H/W 규모산정

by 위안소프트 2017. 12. 17.


동영상 스트리밍 서버 하드웨어의 규모를 산정하는 것은 어려운 작업이다. “어느 정도 규모의 서버가 필요합니까?” 라는 질문에 이렇게 대답하는 게 일반적이다. “가능한 작게또는 일을 수행하기에 충분하게라고
이러한 불확실한 대답은 이해할 만 하기도 하지만 이러한 형태의 대답은 많은 혼란을 야기한다. 동영상 스트리밍 전송은 서버 하드웨어나 네트워크 대역폭 등 자원 집약적인 속성이 있다

그러면 실제 미디어서버를 구성할 때 얼마만큼의 용량이 필요한지를 어떻게 결정할까? 많은 요소 중 네트워크 대역폭과 처리 성능이라는 두 가지 제약 조건이 중요하며, 이것의 균형을 맞추는 일이 미디어서버 구성의 핵심이다많은 소스 스트림이 있는 경우, 이러한 제약 조건들로 인해 빠르게 병목 현상이 발생할 수 있다. 스트리밍 할 때 서버가 최대 용량에 도달하면 대역폭 제한을 초과하거나 메모리 부족 현상이 발생한다여기서는 서버 과부하를 피하기 위해 스트리밍 요구 사항을 충족하는 미디어서버 하드웨어를 결정하는 팁을 제공하려고 한다.

1: 입력 스트림 수와 패키징 방법

서버의 처리 용량은 CPU RAM 메모리에 영향을 받는다. 처리 용량의 한계로 인한 과부하를 피하려면 서버가 동시에 처리해야 하는 스트림 수와 필요한 메모리 양을 알아야 한다.

트랜스코딩해야 할 스트림은 얼마나 되나요?

서버가 처리해야 하는 입력 스트림 수를 파악한 후에 스트림을 패키지화하여 전달할 방법을 선택해야 한다. 예를 들어, 데스크톱 환경에서 플래시 미디어 라이브 인코더(FMLE, Flash Media Live Encoder)와 같은 것을 실행하면 단일 코어 CPU의 최대 80%를 소모한다.

일반적인 트랜스코딩 작업에 필요한 CPU 소모량은 작업마다 다양하다. “트랜스코딩이란 말은 코덱 변경과 ABR 전송을 위한 스트림 트랜스레이팅이라고 할 수 있다. 이 두 작업 모두 CPU를 소모하지만, ABR 전송 스트림을 변환하는 것이 훨씬 많은 CPU를 소모한다대신 스트림의 트랜스먹싱(, RTMP 스트림을 HLS로 변환)만 필요로 하는 경우도 있다. 이런 걸 패스스루 프로세싱(Passthrough processing)”하고 하는데, 이는 훨씬 적은 CPU 파워만 필요로 한다.

ABR 전송을 위해 여러 스트림을 트랜스코딩해야 하는 경우 처리 용량이 큰 서버가 필요하다. 서버에 따라 트랜스코딩할 수 있는 스트림 수는 많이 다르다. 일반적인 OTT(over-the-top) 브로드캐스팅을 위한 하드웨어 샘플 구성은 다음과 같다.



프로세서: 단일 쿼드 코어 4.0GHz i7 6700k

메모리: 16 GB

운영체계: 윈도10(64비트)

이 구성으로 다음을 수행할 수 있다:

 - 9.7Mbps 7개의 인바운드 1080p 스트림 수용
- 각 수신 스트림을 네 가지 렌디션(160p, 240p, 360p, 720p)으로 트랜스코딩

 


얼마나 많은 메모리가 필요한가?

인제스트와 패키징 프로세스에서 소모되는 메모리는 일반적으로 수신되는 스트림 수와 일치한다. 들어오는 소스와 스트림이 많을수록 서버에 더 많은 처리 용량을 필요로 한다.

스트리밍 엔진이 설치되면, 필요한 서버 버전의 JRE(Java Runtime Environment)가 자동으로 설치된다. 일부 레거시 하드웨어 사용자는 JRE가 메모리 사용을 8GB로 제한한다고 하지만, 최신 하드웨어에서는 최대 16 GB까지 처리할 수 있다. 또한 스트리밍 엔진 인스턴스를 여러 개로 구성하면 많은 수의 입력 소스를 충분히 수용할 수 있다.

2: 피크 시 동시 스트림 예측

스트림의 비트레이트와 대역폭 사이의 관계는 인제스트에서는 거의 동일하지만, 아웃바운드 측면에서는 시청자 수 등을 예측해야 하므로 대역폭을 예상하기란 어려운 일이다하지만 대역폭의 과부하를 피하려면 서버가 처리해야 하는 최대 아웃바운드 대역폭을 예측해야 한다. 다음은 검토할 수 있는 샘플 사례이다.

: 피크 시 동시 스트림 개수 예측

최대 처리량이 2 GB/s를 제공하는 데이터 센터를 사용한다고 가정해 본다. 80% 규칙을 감안할 때, 최대 1.6 GB/s의 대역폭 파이프로 계획해야 한다1.6 GB/s 파이프에 들어갈 수 있는 스트림 개수를 파악하려면 먼저 최종 시청자에게 전달되는 스트림의 평균 크기를 추정해야 한다. 참고로 시청자의 평균 스트림 해상도는 원본 스트림 해상도와 다를 수 있다. 원본 스트림을 낮은 해상도로 트랜스코딩한다면, 시청자는 원본 스트림보다 작은 스트림으로도 볼 수 있게 된다.

초당 30 프레임을 가정할 때 스트림 크기에 대한 몇 가지 좋은 지침이 있다:

스트림 해상도

스트리밍 비트레이트

8K

21 ~ 50 Mbps

4K

13 ~ 34 Mbps

1080p

3 ~ 6 Mbps

720p

1.5 ~ 4 Mbps

420p

0.5 ~ 2 Mbps

360p

0.4 ~ 1 Mbps

 

위에서 언급된 시청자의 평균 스트림 크기를 사용하여 이제 대역폭 요건을 예측할 수 있다. 간단하게 하려면 스트림 비트레이트에 최대 스트림 수를 곱하면 된다.

스트림 비트레이트 * 피크 동시 스트림 수 < 사용 가능한 총 대역폭의 80%

계속해서 시청자의 평균 스트림 크기가 달라지면 피크 연결 수와 관련된 몇 가지 시나리오가 있을 수 있다:

시청자

평균 스트림 크기

총 시청자

아웃바운드

대역폭

사용가능한

대역폭

총 파이프

1080p @ 6 Mbps

258

1.55 Gbps

1.6 Gbps

2 Gbps

720p @ 2 Mbps

775

1.55 Gbps

1.6 Gbps

2 Gbps

360p @ 0.5 Mbps

3,100

1.55 Gbps

1.6 Gbps

2 Gbps

 


문의는 (주)위안소프트, 02-793-8797, http://www.weandsoft.com 입니다.