와우자 스트리밍 엔진 성능 최적화를 위한 기본 튜닝

Last modified date

와우자 스트리밍 엔진 성능 최적화의 기본인 Java Heap Size 설정과, Thread Pool Size 설정에 대해 설명하고, 하드웨어의 성능을 최대한 활용할 수 있도록 튜닝하는 방법을 설명한다.

와우자 스트리밍 엔진(Wowza Streaming Engine 이하 와우자)UI에는 Performance Tuning라는 이름의 메뉴가 있다. 이 메뉴는, 와우자가 설치된 하드웨어의 성능을 최대한으로 뽑아내기 위해 최적화 설정을 할 수 있는 메뉴이다.

와우자 전문가들만 다룰 수 있는 영역이라고 느낄 수 도 있겠지만, 쉽고 간단하게 와우자의 성능을 끌어올릴 수 있는 설정 항목 역시 존재한다. 와우자 기술지원팀에서 지원을 받을 때에도, 적합하지 않은 셋팅이라고 하며 먼저 조정할 것을 권하는 경우도 있다.

이 글에서는 와우자 서버의 최적화를 위한 기본적인 튜닝 설정 항목들을 살펴보고, 해당 항목들을 적절하게 튜닝하는 방법에 대해 안내한다.

기본 튜닝 항목

와우자의 성능 튜닝 메뉴는 와우자 웹 UI에서 Server메뉴를 선택한 후, 왼쪽 메뉴 바에 위치한 Performance Tuning을 선택해 들어갈 수 있다.

Java Settings

와우자는 자바(Java)를 기반으로 동작하는 프로그램으로, Java Settings 메뉴에서 와우자가 사용하는 자바 메모리와 관련된 설정을 변경할 수 있다.

Java Settings에서 우리가 살펴 볼 항목은 와우자가 사용할 메모리 크기를 설정하는 Java Heap Size이다. 와우자는 시스템에 설치된 메모리 전체를 사용하는 것이 아니라 자바의 힙(Heap) 영역을 사용한다. 다시 말해, 이 곳에서 설정한 자바 힙 크기가 와우자가 사용할 수 있는 전체 메모리의 크기인 것이다.

와우자 스트리밍 엔진의 UI 에서 Server - Java Settings를 선택하여 Java Heap Size가 4000MB로 설정 되었음을 확인
와우자 스트리밍 엔진의 자바 메모리 설정 화면

기본적으로 와우자를 처음 설치하면 Development level 모드로 설정된다. 이 것을 Production level 모드로 변경하는 것 만으로도 와우자가 사용할 수 있는 힙 영역의 크기가 늘어나고, 사용 가능한 메모리가 늘어난 만큼, 더 많은 작업을 안정적으로 처리할 수 있게 된다.

자바 메모리에 대해 익숙한 사용자라면, Custom level을 선택해 최소 512MB에서 최대 100GB까지 직접 힙 영역의 크기를 할당해 줄 수 있다. 하지만, 적절하지 못한 값을 넣을 경우 OutOfMemory등의 에러가 발생하거나, 시스템의 동작이 불안정해질 수 있다. 적절한 값을 알지 못할 경우 Production level 로 설정 할 것을 권한다.

Server Thread Pools

Server Thread Pools은 와우자의 스레드(Thread) 수를 설정하는 부분으로, 와우자가 동시에 처리할 수 있는 작업의 양에 영향을 준다. 이 부분은 시스템에 장착된 CPU의 프로세서 수와 관련이 있다.

와우자 스트리밍 엔진의 Server Theread Pools 설정 화면. Handler Thread Pool Size는 Set automatically to 240 threads, Transport Thread Pool Size는 Set Automatically to 160 threads 로 설정 되어 있다.
스레드 풀 설정 화면

보통은 와우자를 설치할 때 사용 가능한 프로세서 수를 자동으로 감지하여 기본 값이 설정되지만, 이 기본 값이 항상 정확히 들어가지는 않는다. 특히 CPU의 코어가 많은 서버용 CPU의 경우 이런 일이 종종 발생한다. 아래에 정리된 순서를 참고하여 실제 프로세서 수를 확인하고, 적당한 스레드 풀 크기를 설정해 주면 되겠다.

  1. 로그 메뉴 접근
    와우자 UI에 접속한 후, 상단 메뉴에서 Server메뉴를 선택하고 좌측 메뉴의 Logs를 선택한다.
    와우자 스트리밍 엔진 UI에서 서버 로그를 확인하는 모습. Access History 모드에서 로그범위 current로 설정
    와우자 스트리밍 엔진의 로그 메뉴
  2. 시작로그 확인
    Start dateEnd date범위를 최대로 설정하고, Filter by keyword 입력란에 Hardware Available Processors를 입력한 후 View Logs 버튼을 클릭해 와우자가 인식한 프로세서의 수를 확인한다.
    와우자 스트리밍 엔진의 로그 검색 화면에서 Hardware Available Procesors 를 검색해 4개의 프로세서가 있음을 확인
    와우자 시작 시 프로세서 4개가 감지된 로그의 예
    와우자가 긴 시간 동안 가동 중이었다면, 와우자의 시작 로그가 남아있지 않을 수 있다. 이러한 경우, 본 필자는 와우자를 재 시작해 시작 로그를 다시 생성할 것을 추천한다. 장착된 CPU의 모델명을 통해 사용 가능한 프로세서 수를 유추할 수 있긴 하지만, 여러가지 이유 (단순 착오, 하이퍼스레딩 활성화, 펌웨어 설정 등)로 인해 와우자가 실제로 인식해 사용할 수 있는 프로세서의 수와 장착된 프로세서의 수가 다를 경우가 있기 때문이다.
  3. 스레드 수 계산
    확인된 프로세서 수를 바탕으로 다음의 공식을 사용해 Handler Thread Pool SizeTransport Thread Pool Size의 권장 값을 계산해 준다.
    • Handler Thread Pool Size = 60 x 프로세서 수
    • Transport Thread Pool Size = 40 x 프로세서 수
    위의 예에서는 프로세서의 수가 4였으므로, 위의 공식에 따라 Handler Thread Pool Size의 권장 값은 240, Transport Thread Pool Size의 권장 값은 160이 된다.
  4. 스레드 설정
    와우자 UI의 Server 메뉴에서 Performance Tuning을 선택한다. 현재 설정된 Handler Thread Pool SizeTransport Thread Pool Size 값을 확인하고, 계산된 권장 값과 다르다면 Edit 버튼을 클릭하여 권장 값으로 변경한 후 저장한다.

그 외의 성능조정 옵션들

위에서 설명한 스레드 풀자바 힙 사이즈를 조정하는 것 외에도 설명하지 않은 옵션이 남아있긴 하다. 그리고 UI에는 나타나 있지 않으나, 추가적인 조정을 통해 와우자의 성능을 최적화할 수 있는 요소들도 더 존재한다.

하지만 이 두가지 옵션만으로도 와우자 최적화의 절반은 완료했다 생각해도 된다. 그만큼 크게 영향을 미치는 항목들이다. 나머지 항목들에 대해서는 와우자에서 제공하는 튜닝 메뉴얼을 참고하거나, 검색을 통해 각자 환경에 맞는 최적화 방법을 찾아 보기 바란다.

Since 2005, He has generated new value by converging traditional broadcasting technology and ICT. From Headend and Frontend to the Last Mile device, He possesses a comprehensive understanding and experience of the entire broadcast system.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Post comment