이번 블로그는 클러스터를 구성하는 특정 노드가 재기동 시 메모리 Warmup 프로세스를 다루겠습니다. Couchbase 서버가 가 여러 가지 이유로 재기동하게 되면 메모리를 재구성하고 데이터 처리를 하게 되는데, 이 메모리 재구성 작업을 메모리 Warmup 프로세스로 부릅니다.
메모리 Warmup 프로세스는 다음과 같은 단계로 진행됩니다.
- 각 Bucket에 대해 디스크 내 데이터를 순차적으로 메모리에 적재
- 소요 시간은 노드의 시스템 용량, 노드에 저장된 데이터 용량, Bucket에 설정된 Ejection 정책(이후 블로그에서 다룰 예정) 등에 영향
특히 Data 서비스는 Access Scanner 프로그램에 의해 정해진 우선순위대로 데이터를 메모리에 적재합니다. 이 Access Scanner 프로그램은 다음 기준을 통해 작동합니다.
- 전체 Active Bucket의 데이터 중 메모리에 적재되어 있는 데이터의 비율인 메모리 Resident Ratio를 기준으로 동작합니다. 즉 전체 Active Bucket의 데이터가 100 GB 인데, 메모리에 적재되어 있는 데이터가 80 GB 라면 메모리 Resident Ratio는 80%입니다.
- 메모리 Resident Ratio가 95% 이하이면, 새로운 Access Log를 생성하고 최근 24시간 이내에 빈번하게 접근된 Document 정보를 기록하고 메모리 Warmup 프로세스의 최우선 순위로 선정합니다.
- 메모리 Resident Ratio가 95% 초과이면, 새로운 Access Log를 생성하지 않고 기존 Access Log도 삭재합니다. 그리고 우선순위 없이 메모리 Warmup 프로세스 작업을 진행합니다.
- Access Scanner 프로그램은 기본적으로 하루에 한 번 수행되지만 설정 가능합니다.
관련자료
'Couchbase 아키텍처' 카테고리의 다른 글
[데이터]Ejection (0) | 2022.08.16 |
---|---|
[데이터]Storage 설정 (0) | 2022.08.16 |
[데이터]메모리 관리 : 서비스 메모리 Quota (0) | 2022.08.15 |
[데이터]Caching & Persistence (0) | 2022.08.15 |
[데이터]Compression (0) | 2022.08.15 |