Warm Cache가 반복되는 Plex 요청을 어떻게 바꾸는가

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

웜 캐시는 한 번 가져오는 데 비용이 많이 들었던 데이터가 더 빠른 메모리나 로컬 캐시에 이미 있을 수 있기 때문에, 반복되는 Plex 요청의 처리 방식을 바꿉니다.

두 번째 요청이 더 빠르게 처리되는 것은 실제 운영 환경에서 유용한 동작이지만, 용량 테스트에서는 오해를 불러일으킬 수 있습니다. 포스터, 메타데이터 객체, 파일 시스템 페이지 또는 최근에 읽은 파일은 첫 번째 요청과 동일한 스토리지 경로를 거치지 않고도 빠르게 반환될 수 있습니다. 유용한 비교에서는 캐시 상태, 작업 집합 크기, 메모리 압력을 표시해야 반복 속도를 서버에 무제한 여유 용량이 있는 것으로 오해하지 않을 수 있습니다.

첫 번째 요청은 느린 스토리지에서 데이터를 가져올 수 있습니다

처음 데이터에 액세스할 때 운영 체제나 애플리케이션은 SSD, HDD 또는 네트워크로 마운트된 파일 시스템에서 데이터를 읽어야 할 수 있습니다. 이 경로에는 디바이스 지연 시간, 파일 시스템 작업, 그리고 요청한 바이트를 Plex나 클라이언트에 제공하기 전의 메타데이터 조회가 포함됩니다.

Linux는 일반적으로 사용하지 않는 메모리를 파일 데이터 캐시에 활용하므로, 첫 번째 읽기에서 페이지 캐시가 채워질 수 있습니다. 필요한 페이지가 메모리에 남아 있고 애플리케이션이 의도적으로 캐시를 우회하지 않는 한, 이후 읽기에서는 물리적 I/O의 일부를 피할 수 있습니다.

공정한 테스트를 위해 해당 데이터에 최근 액세스하지 않은 상태에서 어떤 요청이 실제로 첫 번째 요청인지 기록하세요. 서버 재부팅만이 더 차가운 상태를 만드는 유일한 방법이라고 가정하지 말고, 합성 벤치마크를 위해 운영 시스템에서 캐시를 강제로 비우지도 마세요.

반복 요청은 RAM이나 애플리케이션 캐시에서 처리될 수 있습니다

동일한 데이터가 한 번 요청되고 나면 여러 계층에서 더 빠르게 응답할 수 있습니다. 운영 체제는 파일 페이지를 유지할 수 있고, 클라이언트는 아트워크나 인터페이스 데이터를 로컬에 보관할 수 있으며, 애플리케이션은 모든 요청마다 객체를 다시 생성하거나 변환하는 대신 이미 생성되거나 변환된 객체를 재사용할 수 있습니다.

반복 읽기는 캐시된 페이지가 스토리지 지연 시간을 감추는 가장 명확한 사례 중 하나입니다. 그렇다고 측정이 잘못된 것은 아닙니다. 이 결과가 백엔드 디바이스의 캐시되지 않은 성능이 아니라 웜 작업 집합을 설명한다는 의미입니다.

Plex와 관련된 캐시 동작은 생성된 이미지에서도 나타날 수 있습니다. 반복되는 이미지 요청은 이전에 생성된 캐시 파일을 재사용할 수 있습니다. 이는 반복되는 UI 작업이 첫 번째 요청과 다른 경로를 따를 수 있는 이유를 보여주는 구체적인 예입니다.

웜 캐시는 모든 미디어 읽기보다 메타데이터에 더 큰 도움을 줍니다

라이브러리를 탐색할 때는 작은 메타데이터와 아트워크 객체에 많이 액세스하므로, 자주 재사용되는 데이터를 메모리에 가깝게 유지하면 인터페이스 응답 속도가 눈에 띄게 달라질 수 있습니다. 반면 긴 순차 영화 스트림은 한 번 액세스된 뒤 파일의 다음 부분으로 대체되는 데이터를 읽을 수 있습니다.

대규모 Plex 라이브러리는 아트워크와 라이브러리 정보를 반복해서 확인하기 때문에 클라이언트 측 메타데이터 캐시가 상당히 커질 수 있습니다. 메타데이터 캐시는 커질 수 있으며, 동영상 파일 자체는 서버에 그대로 남아 있을 수 있습니다.

“Plex가 더 빠르게 느껴진다”는 말을 해석할 때 이 차이가 중요합니다. 웜 상태의 포스터 그리드가 스토리지가 더 많은 동시 스트림을 지속할 수 있다는 뜻은 아니며, 캐시된 파일 세그먼트가 영화 전체가 메모리에 들어간다는 뜻도 아닙니다. 웜 응답을 용량에 대한 주장으로 바꾸기 전에 요청 유형을 명확히 하세요.

-15% OFF

캐시 제거가 다시 성능 변화를 일으킬 수 있습니다

웜 상태는 일시적입니다. 애플리케이션에 메모리가 필요해지면 운영 체제는 캐시된 페이지를 회수할 수 있고, 클라이언트 캐시는 새 객체를 위한 공간을 확보하기 위해 오래된 객체를 제거할 수 있습니다. 따라서 한 시간 전에는 빠르게 처리되던 요청이 하드웨어 고장 없이도 다시 느린 경로로 돌아갈 수 있습니다.

페이지 캐시는 사용 가능한 메모리를 활용하도록 설계되었지만, 다른 작업에 공간이 필요해지면 메모리를 양보합니다. 메모리 압력에 따른 캐시 회수에 대한 실용적인 설명은 서버의 작업 집합과 동시 실행 서비스가 바뀔 때 동일한 반복 요청의 처리 시간이 달라질 수 있는 이유를 이해하는 데 도움이 됩니다.

같은 요청을 일정 시간 동안 작업이 없는 상태에서 반복한 다음, 메모리를 많이 사용하는 작업이 실행 중일 때 다시 반복해 보세요. 유용한 작업 집합이 메모리에서 밀려날 때만 지연 시간이 증가한다면, 이는 갑자기 디스크가 느려진 것이 아니라 캐시 상주 상태와 메모리 압력을 가리킵니다.

웜 캐시 속도와 지속 가능한 용량을 구분하세요

용량 테스트에는 최소한 첫 번째 또는 콜드 액세스, 반복되는 웜 액세스, 그리고 유용한 캐시보다 큰 지속적 워크로드를 포함해야 합니다. 목표는 캐싱을 없애는 것이 아니라 각 결과를 어떤 계층이 처리했는지, 그리고 재사용의 이점이 사라진 뒤에도 백엔드 리소스에 여유가 남아 있는지를 파악하는 것입니다.

운영 워크로드가 실제로 동일한 데이터를 재사용한다면 웜 결과는 유효합니다. 하지만 짧은 벤치마크 결과를 훨씬 더 큰 라이브러리, 더 많은 클라이언트 또는 더 이상 메모리에 들어맞지 않는 작업 집합에 일반화하면 오해를 불러일으킬 수 있습니다. 클라이언트, 비트레이트, 동시 접속 수와 마찬가지로 캐시 상태도 테스트 조건의 일부로 다루세요.

특히 반복되는 NAS 읽기에 관한 결정을 내릴 때는 SSD 읽기 캐시와 직접 디스크 읽기를 비교하세요. Plex에서 얻을 수 있는 핵심 교훈은 더 간단합니다. 웜 데이터는 지연 시간을 바꾸지만, 캐시가 백엔드 경로를 더 이상 충분히 감당하지 못한 뒤 서버가 무엇을 지속할 수 있는지는 더 큰 규모의 지속적 테스트를 통해서만 확인할 수 있습니다.

기술 및 AI 허브

더 읽어보기

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.