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