메모리 관리

제거 정책

애플리케이션에 대해 작동하는 제거 정책을 선택합니다. Azure Cache for Redis에 대한 기본 정책은 volatile-lru로, EXPIRE과 같은 명령으로 설정된 TTL 값 설정이 있는 키만 제거 대상이 될 수 있습니다. 키에 TTL 값이 없으면 시스템에서 키를 제거하지 않습니다. 메모리가 부족할 때 시스템에서 키를 제거할 수 있게 하려는 경우 allkeys-lru 정책을 고려할 수 있습니다.

키 만료

키에 만료 값을 설정합니다. 만료는 메모리가 부족할 때까지 기다리지 않고 사전에 키를 제거합니다. 메모리 부족으로 인해 제거가 시작되면 서버에 추가 부하가 발생합니다. 자세한 내용은 EXPIREEXPIREAT 명령에 대한 설명서를 참조하세요.

메모리 조각화 최소화

값이 크면 제거 시 메모리가 조각화되어 메모리 사용량과 서버 로드가 높아질 수 있습니다.

메모리 사용량 모니터링

메모리 사용량에 대한 모니터링을 추가하여 메모리 부족을 방지하고 문제를 보기 전에 캐시의 크기를 조정할 수 있습니다.

사용자의 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)을 선택할 때 고려해야 할 한 가지 사항은 이 변경이 이미 실행 중인 대량의 데이터가 있는 캐시에 미치는 영향입니다. 예를 들어 49GB의 데이터가 있는 53GB 캐시가 있는 경우 예약 값을 8GB로 변경하면 시스템에 사용 가능한 최대 메모리가 45GB로 줄어듭니다. 현재 used_memory 또는 used_memory_rss 값이 새 제한인 45GB보다 높으면 시스템에서 used_memoryused_memory_rss 모두가 45GB 미만이 될 때까지 데이터를 제거해야 합니다. 제거는 서버 부하 및 메모리 조각화를 증가시킬 수 있습니다. used_memoryused_memory_rss와 같은 캐시 메트릭에 대한 자세한 내용은 고유한 메트릭 만들기를 참조하세요.

참고 항목

캐시를 확장 또는 축소할 때 maxmemory-reservedmaxfragmentationmemory-reserved 설정은 모두 캐시 크기에 비례하여 자동으로 확장됩니다. 예를 들어 6GB 캐시에서 3GB로 maxmemory-reserved가 설정되고 12GB 캐시로 크기를 조정하는 경우 크기 조정 중에 설정이 자동으로 6GB로 업데이트됩니다. 축소하면 반대 현상이 일어납니다. PowerShell, CLI 또는 Rest API를 사용하여 프로그래밍 방식으로 캐시를 확장하거나 축소하는 경우 maxmemory-reserved 또는 maxfragmentationmemory-reserved는 업데이트 요청의 일부로 무시됩니다. 크기 조정 변경만 적용됩니다. 크기 조정 작업이 완료된 후 이러한 메모리 설정을 업데이트할 수 있습니다.

다음 단계