메모리 관리
제거 정책
애플리케이션에 대해 작동하는 제거 정책을 선택합니다. Azure Cache for Redis에 대한 기본 정책은 volatile-lru
로, EXPIRE과 같은 명령으로 설정된 TTL 값 설정이 있는 키만 제거 대상이 될 수 있습니다. 키에 TTL 값이 없으면 시스템에서 키를 제거하지 않습니다. 메모리가 부족할 때 시스템에서 키를 제거할 수 있게 하려는 경우 allkeys-lru
정책을 고려할 수 있습니다.
키 만료
키에 만료 값을 설정합니다. 만료는 메모리가 부족할 때까지 기다리지 않고 사전에 키를 제거합니다. 메모리 부족으로 인해 제거가 시작되면 서버에 추가 부하가 발생합니다. 자세한 내용은 EXPIRE 및 EXPIREAT 명령에 대한 설명서를 참조하세요.
메모리 조각화 최소화
값이 크면 제거 시 메모리가 조각화되어 메모리 사용량과 서버 로드가 높아질 수 있습니다.
메모리 사용량 모니터링
메모리 사용량에 대한 모니터링을 추가하여 메모리 부족을 방지하고 문제를 보기 전에 캐시의 크기를 조정할 수 있습니다.
사용자의 maxmemory-reserved 설정 구성
시스템 응답성을 개선하려면 maxmemory-reserved 설정을 구성합니다.
쓰기 작업이 많은 워크로드나, 100KB 이상을 캐시에 저장하는 경우에는 충분한 예약 설정이 특히 중요합니다. 기본적으로 캐시를 만들 때 사용 가능한 메모리의 약 10%가
maxmemory-reserved
용으로 예약되어 있습니다. 또 다른 10%는maxfragmentationmemory-reserved
용으로 예약되어 있습니다. 쓰기가 많은 부하가 있는 경우 예약된 양을 늘릴 수 있습니다.maxmemory-reserved
설정은 장애 조치(failover) 중 복제와 같은 비캐시 작업을 위해 예약되는 메모리의 양을 클러스터의 인스턴스당 MB 단위로 구성합니다. 이 값을 설정하면 부하가 달라져도 Redis 서버 환경이 더 일관되도록 할 수 있습니다. 많은 양의 데이터를 쓰는 워크로드의 경우이 값을 더 높게 설정해야 합니다. 이러한 작업을 위해 메모리가 예약된 경우 캐시된 데이터의 스토리지에는 사용할 수 없습니다.maxmemory-reserved
에 허용되는 범위는maxmemory
의 10% - 60%입니다. 이러한 값을 10% 미만 또는 60%보다 높게 설정하려고 하면 다시 평가되어 최소 10% 및 최대 60%로 설정됩니다. 값은 메가바이트 단위로 렌더링됩니다.maxfragmentationmemory-reserved
설정은 메모리 조각화를 고려하여 예약된 메모리 양을 클러스터의 인스턴스당 MB 단위로 구성합니다. 이 값을 설정하면 캐시가 가득 차거나 거의 가득 차고 조각화 비율이 높을 때 Redis 서버 환경이 더 일관됩니다. 이러한 작업을 위해 메모리가 예약된 경우 캐시된 데이터의 스토리지에는 사용할 수 없습니다.maxfragmentationmemory-reserved
에 허용되는 범위는maxmemory
의 10% - 60%입니다. 이러한 값을 10% 미만 또는 60%보다 높게 설정하려고 하면 다시 평가되어 최소 10% 및 최대 60%로 설정됩니다. 값은 메가바이트 단위로 렌더링됩니다.메모리 예약 값(
maxmemory-reserved
또는maxfragmentationmemory-reserved
)을 선택할 때 고려해야 할 한 가지 사항은 이 변경 내용이 이미 실행 중인 많은 양의 데이터가 있는 캐시에 영향을 줄 수 있는 방법입니다. 예를 들어 예약된 값이 최소 10GB로 설정된 53GB 캐시가 있는 경우 시스템에 사용 가능한 최대 메모리는 약 42GB입니다. 현재used_memory
또는 값used_memory_rss
이 42GB의 제한보다 높은 경우 시스템은 둘 다used_memory
used_memory_rss
에서 42GB 미만이 될 때까지 데이터를 제거해야 합니다. 제거는 서버 부하 및 메모리 조각화를 증가시킬 수 있습니다.used_memory
및used_memory_rss
와 같은 캐시 메트릭에 대한 자세한 내용은 고유한 메트릭 만들기를 참조하세요.
참고 항목
캐시를 확장 또는 축소할 때 maxmemory-reserved
및 maxfragmentationmemory-reserved
설정은 모두 캐시 크기에 비례하여 자동으로 확장됩니다. 예를 들어 6GB 캐시에서 3GB로 maxmemory-reserved
가 설정되고 12GB 캐시로 크기를 조정하는 경우 크기 조정 중에 설정이 자동으로 6GB로 업데이트됩니다. 축소하면 반대 현상이 일어납니다.
PowerShell, CLI 또는 Rest API를 사용하여 프로그래밍 방식으로 캐시를 확장하거나 축소하는 경우 maxmemory-reserved
또는 maxfragmentationmemory-reserved
는 업데이트 요청의 일부로 무시됩니다. 크기 조정 변경만 적용됩니다. 크기 조정 작업이 완료된 후 이러한 메모리 설정을 업데이트할 수 있습니다.