Jellyfin에 설정해야 할 메모리 제한은 얼마인가요?

에바 왕기술 작가 그리고 이자 ZimaSpace의 상주 장인입니다. 평생을 기술에 열정을 가진 사람으로서 홈랩과 오픈소스 소프트웨어에 열정을 가지고 있으며,복잡한 기술 개념을 쉽게 이해할 수 있는 실습 가이드로 번역하는 데 전문성을 가지고 있습니다.에바는 셀프 호스팅이 어렵지 않고 재미있어야 한다고 믿습니다. 그녀의 튜토리얼을 통해 커뮤니티가 하드웨어 설정의 신비를 풀도록돕고 있습니다. 첫 NAS 구축부터 Docker 컨테이너 마스터링까지.

범용적인 Jellyfin 메모리 제한을 선택하지 마세요. 측정된 워크로드를 기준으로 시작하고, 호스트와 인접 컨테이너에 메모리를 할당한 뒤, 실제 최대 사용량을 확인한 후에만 하드 제한을 적용하세요.

컨테이너가 호스트의 스왑을 유발할 때까지 메모리를 계속 사용하나요, 아니면 제한이 너무 낮아 반복적으로 OOM 종료가 발생하나요? 제한을 변경하기 전에 유휴 상태 사용량, 라이브러리 스캔, 메타데이터 작업, 동시 트랜스코딩 수, Docker 또는 VM에서 사용할 수 있는 메모리를 측정하세요. 원래 워크로드가 정상적으로 완료되고 호스트에 복구 여유가 남아 있을 때만 해당 제한을 안전하다고 볼 수 있습니다.

정상적인 캐시 증가와 상주 메모리 압박을 구분하세요

먼저 유휴 상태와 가장 바쁜 반복 가능한 작업 중에 컨테이너 RSS, 캐시, 스왑, 호스트 여유 메모리를 비교하세요. 파일 시스템 캐시는 누수 없이도 크게 보일 수 있지만, 상주 메모리 증가와 OOM 이벤트가 함께 발생한다면 실제 제약이 있다는 의미입니다.

기본적인 Docker Jellyfin 배포는 일반적으로 몇 기가바이트에서 시작하며 트랜스코딩에는 더 많은 메모리가 필요하지만, 적절한 값은 워크로드에 따라 달라집니다(워크로드 기반 메모리 기준선).

RSS가 일정한 상태에서 캐시만 증가하고 호스트에 회수 가능한 메모리가 있다면 제한을 더 엄격하게 하기보다 모니터링하세요. RSS가 스왑 또는 OOM 종료 메시지와 함께 증가한다면 트랜스코딩 및 라이브러리 테스트를 계속 진행하세요.

문제를 일으키는 조건에서 제한을 테스트하세요

메모리 사용량, 메모리 이벤트, 스왑, 호스트 압력을 기록하면서 라이브러리 스캔 한 번, 대표적인 트랜스코딩 한 번, 예상되는 동시 스트림 수를 실행하세요. 실행 간에는 메모리 제한만 변경하세요.

유휴 재생에서는 통과하지만 자막, HDR 변환 또는 인덱싱 중에 실패하는 제한은 실제 운영 환경에 적합한 설정이 아닙니다. 어떤 조건이 실패를 일으켰는지 기록하여 관련 없는 병목 때문에 제한을 늘리지 않도록 하세요.

컨테이너가 종료되었다면 불필요한 트랜스코딩 캐시를 줄이거나 무거운 작업을 분리한 후에만 제한을 늘리세요. 호스트 자체가 스왑을 사용한다면 동시성을 낮추거나 역할을 다른 곳으로 옮기세요. Jellyfin에 남은 RAM을 모두 할당하면 장애가 다른 서비스로 옮겨갈 뿐입니다.

중단 기준을 설정하고 지속성을 확인하세요

하드 제한보다 낮은 지점에 소프트 알림을 설정하고, 호스트와 스토리지 서비스, 정상적인 재시작에 충분한 메모리를 남겨 두세요. 하드 제한은 호스트를 보호해야 하며, 무제한 프로세스나 사양이 부족한 시스템을 감춰서는 안 됩니다.

제한을 변경한 후 컨테이너를 한 번 중지하고 다시 생성한 다음, 원래의 스캔 및 재생 조건을 반복하세요. 컨테이너를 다시 생성한 후에도 설정된 제한이 계속 활성화되어 있는지, 데이터베이스에 쓰기 작업이 가능한지 확인하세요.

호스트 여유가 남지 않는 제한에서도 OOM 이벤트가 계속 발생하거나, 데이터베이스가 손상되거나, 재현 가능한 워크로드 없이 프로세스가 증가한다면 튜닝을 중단하고 문제를 상위 단계로 전달하세요. 더 큰 변경을 하기 전에 로그와 마지막으로 정상 작동한 구성을 보존하세요.

콜드 재시작 후 최대 재생 부하를 다시 확인하세요

호스트를 재부팅하고 스토리지 마운트와 인접 컨테이너가 준비될 때까지 기다린 다음, 처음에 제한 문제를 드러냈던 동일한 다중 사용자 스트림 조합을 재현하세요. 유휴 대시보드나 단일 Direct Play 세션만으로 검증하지 마세요.

재생이 안정적으로 유지되고, 스왑 폭주가 나타나지 않으며, 컨테이너가 제한 이하로 유지되고, 새 백업 또는 재시작이 메모리 관련 오류 없이 완료될 때 복구가 검증된 것입니다. 결과를 튜닝 전에 기록한 기준선과 비교하세요.

최대 워크로드가 측정 가능한 호스트 여유를 두고 통과한다면 해당 설정을 유지하세요. 다른 컨테이너가 시작된 후에만 실패한다면 Jellyfin의 제한을 다시 늘리기보다 리소스 예산을 분리하거나 경쟁 작업의 일정을 조정하세요.

지원 및 팁

더 읽어보기

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.