NUC로 부족한 NAS의 성능을 보완하였습니다.

Intel NUC Kit NUC6CAYH를 받은지 두달만에 사용/구축기를 적게되네요..

일단 NUC6CAYH의 용도는 Plex Media Server의 용도로 특정하였습니다. 많이 부족한 NAS(Synology DS216+)의 트랜스코딩 성능을 보완하고자 하는 목적으로 말입니다. 이를 위해 NUC6CAYH에는 NAS의 역할이 전혀 필요없어 리눅스나 Xpenology가 아닌 Windows를 설치하였고 Windows 자체의 네트워크 드라이브 기능을 통해서 NAS의 동영상 데이터를 연결한 후 이를 Plex Media Server의 라이브러리로 구성해야겠다는 설계를 하였습니다.

네트워크 드라이브로 NAS와 연결하여 동영상 데이터를 당겨오기 때문에 실질적으로 NUC6CAYH에는 영상자료를 저장할 필요가 없어서 Windows 구성파일과 유지보수용 애플리케이션, Plex 라이브러리가 저장될 최소의 용량인 120GB SSD를 장착하였고 메모리는 4GB DDR3L-1600 2개를 장착하였습니다. 어차피 Windows용 Plex Media Server는 32bit용밖에 없으므로 서버 애플리케이션 자체가 8GB 메모리를 다 활용할 수는 없지만 다른 용도도 생각하여 넉넉하게 장착하였습니다.

NUC6CAYH의 CPU는 Intel Celeron J3455 입니다. PassMark 스코어가 2000대를 겨우 넘는 성능으로 CPU에 내장된 그래픽코어를 이용한 하드웨어 가속 즉, 하드웨어 트랜스코딩을 이용하지 않으면 1080p 영상 기준 하나도 간당간당하게 처리할 수준밖에 되지 않으므로 Plex Pass – Life Time 가입을 하여 하드웨어 트랜스코딩을 활성화 하였습니다. 실제 테스트시 영상에 따라 다르긴 하지만 1080p 기준 3~4개 동시 트랜스코딩도 무리없이 가능하였습니다.

Feb 08, 2018 22:03:44.233 [0992] DEBUG – TPU: hardware transcoding: final decoder: dxva2, final encoder: qsv

Feb 08, 2018 22:03:44.254 [0992] DEBUG – Job running: EAE_ROOT=’\\?\C:\Users\jaegw\AppData\Local\Plex Media Server\Cache\Transcode\Sessions\EasyAudioEncoder’ FFMPEG_EXTERNAL_LIBS=’\\\\?\\C\:\\Users\\jaegw\\AppData\\Local\\Plex\ Media\ Server\\Codecs\\b077134-1269-windows-i386\\’ XDG_CACHE_HOME=’C:\Users\jaegw\AppData\Local\Plex Media Server\Cache\’ XDG_DATA_HOME=’C:\Program Files (x86)\Plex\Plex Media Server\Resources\’ X_PLEX_TOKEN=’xxxxxxxxxxxxxxxxxxxx’ C:\Program Files (x86)\Plex\Plex Media Server\PlexTranscoder.exe -codec:#0x01 h264 -hwaccel:#0x01 dxva2 -hwaccel_fallback_threshold:#0x01 10 -codec:#0x02 aac -ihttp://127.0.0.1:32400/library/parts/64571/1517385739/file.mp4?X-Plex-Token=xxxxxxxxxxxxxxxxxxxx -filter_complex [0:#0x01]scale=w=720:h=406[0];[0]format=pix_fmts=nv12[1] -filter_complex “[0:#0x02] aresample=async=1:ocl=’stereo’:osr=48000[2]” -map [1] -codec:0 h264_qsv -b:0 1009k -maxrate:0 1346k -bufsize:0 2692k -r:0 29.969999999999999 -force_key_frames:0 expr:gte(t,0+n_forced*8) -map [2] -codec:1 aac_mf -b:1 162k -segment_format mpegts -f ssegment -individual_header_trailer 0 -segment_time 8 -segment_start_number 0 -segment_copyts 1 -segment_time_delta 0.0625 -segment_listhttp://127.0.0.1:32400/video/:/transcode/session/b66b5f1c61aebb8a-com-plexapp-android/088a17f7-97e9-4c6b-aa68-19e025890df8/seglist -segment_list_type csv -segment_list_size 2147483647 -segment_list_separate_stream_times 1 -max_delay 5000000 -avoid_negative_ts disabled -map_metadata -1 -map_chapters -1 media-%05d.ts -start_at_zero -copyts -vsync cfr -y -nostats -loglevel quiet -loglevel_plex error -progressurlhttp://127.0.0.1:32400/video/:/transcode/session/b66b5f1c61aebb8a-com-plexapp-android/088a17f7-97e9-4c6b-aa68-19e025890df8/progress

Plex Media Server 재생로그 중…

특히 Windows로 Plex Media Server를 구성하면 별다른 세팅 없이 QSV가속을 지원하므로 하드웨어 트랜스코딩시 움직임이 빠른 장면에서 심각한 화질저하가 발생하지 않는 이점도 있습니다. 게다가 이 CPU는 HEVC 트랜스코딩도 지원하죠.

NUC6CAYH에 Windows 10 Pro를 설치하고 Windows Update, 하드웨어 드라이버 설치, 정품인증까지 마친 상태에서 NAS의 동영상이 저장되어있는 공유폴더를 Windows 자체기능인 네트워크 드라이브를 통해 하나하나 연결을 해주었습니다. 여기서 주의할 점은 네트워크 드라이브를 NetDrive나 RaiDrive를 통해 연결하면 미디어를 불러올때마다 해당 용량이 캐시로 쌓여 SSD가 금방 꽉 차는 현상이 생기고 안정성이 일부 저하되므로 외부 클라우드를 이용하지 않는 이상 사용하지 않는것이 좋습니다. (물론 이를 이용하여 사용하다 캐시로 인해 SSD가 꽉 차면 재부팅해주는것으로 캐시를 비울 수는 있습니다.)

네트워크 드라이브 연결을 모두 마치면 Plex Media Server를 설치합니다. 저는 NAS에서 Plex를 구축하여 사용중이었기 때문에 NAS에서 사용했던 Plex Media Server 라이브러리를 NUC6CAYH에 복사해 넣었습니다. 이렇게 하면 다시 메타를 불러오지 않고도 NAS에서 구성했던 라이브러리를 그대로 사용할 수 있습니다. 이후 각 라이브러리의 경로를 해당 네트워크 드라이브 경로로 수정해주었습니다.

Tautulli (구 PlexPY)는 NAS에 설치하여 NUC6CAYH나 설치된 Plex Media Server에 문제가 발생하면 즉각 모바일 TauTulli앱이나 텔레그램으로 알림를 보낼수 있게도 설정하였습니다. NAS에도 동시에 문제가 생기지 않는 이상 Plex Media Server 접속이 불가능한 경우 NAS에 설치된 Tautulli가 알림을 보낼것입니다. 또한 어떤 사용자가 어느 미디어를 무슨방식으로 재생하였는지도 통계로 볼 수도 있죠.

이 모든 세팅을 끝내고 AIDA64를 설치하여 리모트센서를 활성화 함으로써 시스템 모니터링 페이지를 표시할 수 있게 한 후 HDMI에 연결된 디스플레이를 제거합니다. 앞으로는 RDP(Microsoft Remote Desktop 또는 Guacamole)를 통해 원격으로 접근할것이기 때문이죠.

이로써 NUC6CAYH는 Plex Media Server만을 위한 전용기기가 되었습니다. 성능이 좀 아쉽지만 동시접속의 가능성이 적기 때문에 그리고 적게 잡아도 2~3개의 동시접속 동시 트랜스코딩도 견딜 수 있기 때문에 당분간은 충분히 사용할 수 있을것으로 생각이 됩니다.

6개의 댓글

    1. 성능만 받쳐준다면 화질저하가 가장 적은 CPU빨로 트랜스코딩 하는편이 더 나을꺼 같아요. QSV를 지원해도 화질면에서는 약간 손해를 보거든요.. 요즘은 고성능 CPU일지라도 아이들시에는 저전력으로 유지되기에 전력소모면에서도 크게 걱정할 부분도 아닌거 같구요..

      다만 저의경우 예산과 공간이 한정되어 있어 이게 최선이었네요.
      NUC본체 $129.99 에 Plex Pass Life Time $79.99 램과 SSD는 집에 안쓰고 방치되어 있던걸 활용… 나름 저렴하게 구성했다고 봅니다

    1. Plex Pass 등록했다면 당연히 가능하고 문제없습니다…
      다만 Plex 버전이 올라가면서 VAAPI의 향상도 있는지는 모르겠지만 예전에는 하드웨어 트랜스코딩시 화질저하가 상당히 심했습니다. 지금은 어떨지 궁금하군요.

      리눅스계열에서는 커널수정으로 QSV를 사용할 수 있다고는 하는데 이게 가능하다해도 커스텀된 기성NAS의 OS에서는 불가능할꺼기에 VAAPI밖에 사용할 수 없거든요…

  1. 안녕하세요.
    저도 nuc 같은 모델 구매해서 윈도우 설치후 나스를 네트워크 드라이브로 연결해서 plex 사용중입니다.

    그런데 만약 nuc나 나스중 하나가 재부팅 시킬 경우가 생기면 재부팅후 네트워크 드라이브가 X 표시가 되면서 자동으로 재연결이 안되더군요.

    이럴때 꼭 nuc의 네트워크 드라이브를 클릭해서 X 표시를 없애줘서 다시 연결시켜야 하더군요.

    혹시 여기에 대한 해결책을 아시나 궁금해서 댓글 남깁니다.

    계속 켜놓는 방법밖에 없을까요?

    1. 저의 경우는 재부팅 이후에 재연결이 잘 되고 있습니다.
      NAS만을 재부팅할 경우도 재부팅 과정에서 네트워크 드라이브에 X가 표시되고 부팅이 완료되면 자동으로 X표시가 사라지면서 재연결되더군요…
      (재연결이 안되더라도 단순히 새로고침 하면 X표시가 사라졌었습니다.)

      같은 증상이 발생한적이 없어서 해결책을 드리기는 불가능할꺼 같습니다.
      만약 증상이 발생하고 이에대한 해결방법을 발견한다면 다시 답변드리겠습니다.

댓글 남기기