기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Valkey 또는 Redis OSS 스냅샷을 생성하기에 충분한 메모리 확보
Valkey 7.2 이상 및 Redis OSS 버전 2.8.22 이상의 스냅샷 및 동기화
Valkey는 스냅샷 및 동기화를 기본적으로 지원합니다. Redis OSS 2.8.22에서는 동기화 및 저장 중에 스왑 사용량을 늘리지 않고 애플리케이션 사용에 더 많은 메모리를 할당할 수 있는 포크리스 저장 프로세스를 도입합니다. 자세한 내용은 동기화 및 백업 구현 방법 단원을 참조하십시오.
버전 2.8.22 이전의 Redis OSS 스냅샷 및 동기화
ElastiCache (Redis OSS)로 작업할 때 Redis는 다음과 같은 여러 경우에 백그라운드 쓰기 명령을 OSS 호출합니다.
백업을 위해 스냅샷을 생성하는 경우
복제 그룹에서 기본을 사용하여 복제본을 동기화하는 경우
Redis 에 대한 추가 전용 파일 기능(AOF)을 활성화하는 경우OSS.
복제본을 기본으로 승격하는 경우(기본/복제본 동기화 발생)
Redis가 백그라운드 쓰기 프로세스를 OSS 실행할 때마다 프로세스 오버헤드를 수용할 수 있는 충분한 메모리가 있어야 합니다. 사용 가능한 메모리를 충분히 확보하지 못하면 프로세스가 실패합니다. 따라서 Redis OSS 클러스터를 생성할 때 메모리가 충분한 노드 인스턴스 유형을 선택하는 것이 중요합니다.
Valkey 및 Redis를 사용한 백그라운드 쓰기 프로세스 및 메모리 사용 OSS
백그라운드 쓰기 프로세스가 호출될 때마다 Valkey와 Redis는 프로세스를 OSS 포크합니다(단일 스레드 엔진임). 하나의 포크는 Redis OSS .rdb 스냅샷 파일의 디스크에 데이터를 유지합니다. 나머지 포크가 모든 읽기 및 쓰기 작업을 처리합니다. 스냅샷이 point-in-time 스냅샷인지 확인하기 위해 모든 데이터 업데이트 및 추가는 데이터 영역과 별도로 사용 가능한 메모리 영역에 기록됩니다.
사용 가능한 메모리가 충분하여 데이터가 계속 디스크에 쓰여지는 동안 모든 쓰기 작업을 기록할 수 있으면 메모리 부족 문제가 발생하지 않습니다. 다음과 같은 경우에 해당되며 메모리 부족 문제가 생기기 쉽습니다.
-
애플리케이션이 여러 쓰기 작업을 수행하여 새로운 데이터나 업데이트된 데이터를 저장하기 위해 사용 가능한 메모리가 대량으로 필요합니다.
-
새로운 데이터나 업데이트된 데이터를 쓸 사용 가능한 메모리가 거의 없습니다.
-
디스크에 계속 쓰기 위해 시간이 오래 걸리는 큰 데이터 세트가 있어 많은 쓰기 작업이 필요합니다.
다음 다이어그램에서는 백그라운드 쓰기 프로세스를 실행할 때의 메모리 사용량을 보여줍니다.
백업이 성능에 미치는 영향에 대한 정보는 자체 설계된 클러스터 백업이 성능에 미치는 영향 섹션을 참조하세요.
Valkey 및 Redis가 스냅샷을 OSS 수행하는 방법에 대한 자세한 내용은 http://valkey.io
리전 및 가용 영역에 대한 자세한 내용은 에 대한 리전 및 가용 영역 선택 ElastiCache 섹션을 참조하세요.
백그라운드 쓰기를 실행할 때 메모리 부족 방지
BGSAVE
또는 와 같은 백그라운드 쓰기 프로세스가 BGREWRITEAOF
호출될 때마다 프로세스가 실패하지 않도록 하려면 프로세스 중에 쓰기 작업에서 사용할 메모리보다 더 많은 메모리를 사용할 수 있어야 합니다. 최악의 시나리오는 백그라운드 쓰기 작업 중에 모든 레코드가 업데이트되고 일부 새 레코드가 캐시에 추가된다는 것입니다. 따라서 2.8.22 이전의 Redis OSS 버전은 50(50%)reserved-memory-percent
으로, Valkey 및 모든 Redis OSS 버전 2.8.22 이상은 25(25%)로 설정하는 것이 좋습니다.
maxmemory
값은 데이터 및 작업 오버헤드에 사용할 수 있는 메모리를 나타냅니다. 기본 파라미터 그룹에서 reserved-memory
파라미터를 수정할 수 없으므로 클러스터의 사용자 지정 파라미터 그룹을 생성해야 합니다. 의 기본값은 0reserved-memory
으로, Redis가 모든 최대 메모리OSS를 데이터와 함께 사용할 수 있도록 하므로 백그라운드 쓰기 프로세스와 같은 다른 용도로 메모리가 너무 적을 수 있습니다. 노드 인스턴스 유형에 따른 maxmemory
값은 OSS 노드 유형별 파라미터 재정의 섹션을 참조하세요.
reserved-memory
파라미터를 사용하여 상자에 사용되는 메모리 양을 줄일 수도 있습니다.
의 Valkey 및 Redis별 파라미터에 대한 자세한 내용은 섹션을 ElastiCache참조하세요Valkey 및 Redis OSS 파라미터.
파라미터 그룹 생성 및 수정에 대한 정보는 ElastiCache 파라미터 그룹 생성 및 ElastiCache 파라미터 그룹 수정 섹션을 참조하세요.