웜 캐시는 한 번 가져오는 데 비용이 많이 들었던 데이터가 더 빠른 메모리나 로컬 캐시에 이미 있을 수 있기 때문에, 반복되는 Plex 요청의 처리 방식을 바꿉니다.
두 번째 요청이 더 빠르게 처리되는 것은 실제 운영 환경에서 유용한 동작이지만, 용량 테스트에서는 오해를 불러일으킬 수 있습니다. 포스터, 메타데이터 객체, 파일 시스템 페이지 또는 최근에 읽은 파일은 첫 번째 요청과 동일한 스토리지 경로를 거치지 않고도 빠르게 반환될 수 있습니다. 유용한 비교에서는 캐시 상태, 작업 집합 크기, 메모리 압력을 표시해야 반복 속도를 서버에 무제한 여유 용량이 있는 것으로 오해하지 않을 수 있습니다.
첫 번째 요청은 느린 스토리지에서 데이터를 가져올 수 있습니다
처음 데이터에 액세스할 때 운영 체제나 애플리케이션은 SSD, HDD 또는 네트워크로 마운트된 파일 시스템에서 데이터를 읽어야 할 수 있습니다. 이 경로에는 디바이스 지연 시간, 파일 시스템 작업, 그리고 요청한 바이트를 Plex나 클라이언트에 제공하기 전의 메타데이터 조회가 포함됩니다.
Linux는 일반적으로 사용하지 않는 메모리를 파일 데이터 캐시에 활용하므로, 첫 번째 읽기에서 페이지 캐시가 채워질 수 있습니다. 필요한 페이지가 메모리에 남아 있고 애플리케이션이 의도적으로 캐시를 우회하지 않는 한, 이후 읽기에서는 물리적 I/O의 일부를 피할 수 있습니다.
공정한 테스트를 위해 해당 데이터에 최근 액세스하지 않은 상태에서 어떤 요청이 실제로 첫 번째 요청인지 기록하세요. 서버 재부팅만이 더 차가운 상태를 만드는 유일한 방법이라고 가정하지 말고, 합성 벤치마크를 위해 운영 시스템에서 캐시를 강제로 비우지도 마세요.
반복 요청은 RAM이나 애플리케이션 캐시에서 처리될 수 있습니다
동일한 데이터가 한 번 요청되고 나면 여러 계층에서 더 빠르게 응답할 수 있습니다. 운영 체제는 파일 페이지를 유지할 수 있고, 클라이언트는 아트워크나 인터페이스 데이터를 로컬에 보관할 수 있으며, 애플리케이션은 모든 요청마다 객체를 다시 생성하거나 변환하는 대신 이미 생성되거나 변환된 객체를 재사용할 수 있습니다.
반복 읽기는 캐시된 페이지가 스토리지 지연 시간을 감추는 가장 명확한 사례 중 하나입니다. 그렇다고 측정이 잘못된 것은 아닙니다. 이 결과가 백엔드 디바이스의 캐시되지 않은 성능이 아니라 웜 작업 집합을 설명한다는 의미입니다.
Plex와 관련된 캐시 동작은 생성된 이미지에서도 나타날 수 있습니다. 반복되는 이미지 요청은 이전에 생성된 캐시 파일을 재사용할 수 있습니다. 이는 반복되는 UI 작업이 첫 번째 요청과 다른 경로를 따를 수 있는 이유를 보여주는 구체적인 예입니다.
웜 캐시는 모든 미디어 읽기보다 메타데이터에 더 큰 도움을 줍니다
라이브러리를 탐색할 때는 작은 메타데이터와 아트워크 객체에 많이 액세스하므로, 자주 재사용되는 데이터를 메모리에 가깝게 유지하면 인터페이스 응답 속도가 눈에 띄게 달라질 수 있습니다. 반면 긴 순차 영화 스트림은 한 번 액세스된 뒤 파일의 다음 부분으로 대체되는 데이터를 읽을 수 있습니다.
대규모 Plex 라이브러리는 아트워크와 라이브러리 정보를 반복해서 확인하기 때문에 클라이언트 측 메타데이터 캐시가 상당히 커질 수 있습니다. 메타데이터 캐시는 커질 수 있으며, 동영상 파일 자체는 서버에 그대로 남아 있을 수 있습니다.
“Plex가 더 빠르게 느껴진다”는 말을 해석할 때 이 차이가 중요합니다. 웜 상태의 포스터 그리드가 스토리지가 더 많은 동시 스트림을 지속할 수 있다는 뜻은 아니며, 캐시된 파일 세그먼트가 영화 전체가 메모리에 들어간다는 뜻도 아닙니다. 웜 응답을 용량에 대한 주장으로 바꾸기 전에 요청 유형을 명확히 하세요.
캐시 제거가 다시 성능 변화를 일으킬 수 있습니다
웜 상태는 일시적입니다. 애플리케이션에 메모리가 필요해지면 운영 체제는 캐시된 페이지를 회수할 수 있고, 클라이언트 캐시는 새 객체를 위한 공간을 확보하기 위해 오래된 객체를 제거할 수 있습니다. 따라서 한 시간 전에는 빠르게 처리되던 요청이 하드웨어 고장 없이도 다시 느린 경로로 돌아갈 수 있습니다.
페이지 캐시는 사용 가능한 메모리를 활용하도록 설계되었지만, 다른 작업에 공간이 필요해지면 메모리를 양보합니다. 메모리 압력에 따른 캐시 회수에 대한 실용적인 설명은 서버의 작업 집합과 동시 실행 서비스가 바뀔 때 동일한 반복 요청의 처리 시간이 달라질 수 있는 이유를 이해하는 데 도움이 됩니다.
같은 요청을 일정 시간 동안 작업이 없는 상태에서 반복한 다음, 메모리를 많이 사용하는 작업이 실행 중일 때 다시 반복해 보세요. 유용한 작업 집합이 메모리에서 밀려날 때만 지연 시간이 증가한다면, 이는 갑자기 디스크가 느려진 것이 아니라 캐시 상주 상태와 메모리 압력을 가리킵니다.
웜 캐시 속도와 지속 가능한 용량을 구분하세요
용량 테스트에는 최소한 첫 번째 또는 콜드 액세스, 반복되는 웜 액세스, 그리고 유용한 캐시보다 큰 지속적 워크로드를 포함해야 합니다. 목표는 캐싱을 없애는 것이 아니라 각 결과를 어떤 계층이 처리했는지, 그리고 재사용의 이점이 사라진 뒤에도 백엔드 리소스에 여유가 남아 있는지를 파악하는 것입니다.
운영 워크로드가 실제로 동일한 데이터를 재사용한다면 웜 결과는 유효합니다. 하지만 짧은 벤치마크 결과를 훨씬 더 큰 라이브러리, 더 많은 클라이언트 또는 더 이상 메모리에 들어맞지 않는 작업 집합에 일반화하면 오해를 불러일으킬 수 있습니다. 클라이언트, 비트레이트, 동시 접속 수와 마찬가지로 캐시 상태도 테스트 조건의 일부로 다루세요.
특히 반복되는 NAS 읽기에 관한 결정을 내릴 때는 SSD 읽기 캐시와 직접 디스크 읽기를 비교하세요. Plex에서 얻을 수 있는 핵심 교훈은 더 간단합니다. 웜 데이터는 지연 시간을 바꾸지만, 캐시가 백엔드 경로를 더 이상 충분히 감당하지 못한 뒤 서버가 무엇을 지속할 수 있는지는 더 큰 규모의 지속적 테스트를 통해서만 확인할 수 있습니다.
기술 및 AI 허브
더 읽어보기

Plex 상태란 무엇이며, 어떤 부분을 영구적으로 보존해야 하나요?
영구 Plex 상태는 재시작 및 재구축 후에도 서버 환경을 유지하는 정보이며, 미디어와 임시 트랜스코딩 데이터는 별도의 역할을 합니다.

Plex는 로컬 세션과 원격 세션의 인증을 어떻게 처리하나요?
Plex 인증은 서버와 계정의 신원 확인으로 시작되며, 이후 로컬 또는 원격 네트워크 경로에 따라 연결 가능 여부와 보안 연결 동작이 결정됩니다.

라이브러리 데이터가 늘어날수록 Plex 검색이 느려지는 이유는 무엇인가요?
라이브러리 증가만으로는 원인을 진단할 수 없습니다. 데이터베이스 크기를 탓하기 전에 쿼리 형태, 인덱스, 캐시 상태, 스토리지 지연 시간, 쓰기 작업을 점검하세요.

