server_spec
Redis Server Specification
Redis Server 教育 Redis Server Course |
Redis 定期点検/技術支援 Redis Technical Support |
Redis エンタープライズサーバ Redis Enterprise Server |
---|
Redis Server Specification
개요 槪要 Outline
레디스 서버 사용 메모리, SSD, HDD 구성(용도) 방법에 대해 설명한다. 한 레디스 서버(인스턴스)에서 사용하는 메모리 계산 방법은 Redis Server Memory 사용량 계산을 보세요. Copy-on-Write로 인한 추가 메모리 사용량은 Copy-on-Write 분석을 보세요. 여기서는 여러 인스턴스일 때 메모리 사용량 계산하는 방법과 권장하는 SSD, HDD 용도를 설명한다.
사용 메모리(RAM) 계산 방법 方法 Method
레디스는 백그라운드 AOF 작성(쓰기) 또는 RDB 파일 작성에 Copy-on-Write(COW)를 사용한다.
COW로 인한 추가 메모리를 데이터 메모리 크기의 약 30%로 잡는다.
다음은 한 머신(박스)에 인스턴스 세 대를 운영할 때 메모리량을 계산한 예이다.
예로 든 데이터 12gB는 100 바이트 데이터를 Strings에 7천만 개 넣었을 때 크기이고,
20gB는 1억 1천만 개를 넣었을 때 크기이다.
- 레디스 인스턴스 당 (데이터 12gB + 추가분 3gB) 15gB * 인스턴스 수 3 = 45gB
- 레디스 인스턴스 당 (데이터 20gB + 추가분 5gB) 25gB * 인스턴스 수 3 = 100gB
SSD 용도, 용량
SSD는 AOF 또는 RDB 저장에 사용한다.
자동 AOF rewrite를 설정하지 않았다면(권장) 증가되는 양을 고려해서
매일 또는 몇 시간마다 BGREWRITEAOF 명령으로 rewrite를 한다.
AOF 파일 크기는 데이터양에 따라 매우 다르다.
계산하기 어렵다면 일단 메모리 사용량의 2배를 잡는다.
RDB는 파일 크기는 압축되므로 메모리 크기보다는 적게 나온다.
정리하면, AOF 만 사용한다면 메모리의 2배, AOF와 RDB 두 가지를 사용한다면 메모리의 3배로 계산하자.
RDB를 명시적으로 사용하지 않더라도 복제(replication)을 사용하면 자동으로 발생하므로
서버 스펙을 정할 때는 3배를 적용하자.
- SSD = 사용 메모리 45gB * 3 = 135gB
- SSD = 사용 메모리 100gB * 3 = 300gB
혹시 SSD가 부족하다면 슬레이브는 HDD를 이용하자. 이것은 여러 레디스 인스턴스에서 동시에 RDB나 AOF 다시 쓰기가 발생했을 경우 블록킹(blcking)이 SSD가 HDD보다 더 발생하는 것을 고려한 것이기도 하다.
HDD 용도, 용량
HDD의 첫 번째 용도는 AOF, RDB 파일의 백업용이다.
두 번째 용도는 AOF, RDB 파일 저장 용이다.
일반적으로 AOF, RDB 쓰기에 SSD를 권장하지만,
SSD에 쓰기(write) 부하가 심하다면 레디스 인스턴스를 나누어서 일부는 HDD를 사용하도록 하자.
슬레이브일 경우 HDD를 사용하는 것도 좋은 방법이다.
HDD 용량은 AOF, RDB 파일을 며칠 보관할지 정하면 계산 가능하다.
메모리 데이터베이스의 특성상 파일을 오래 보관할 필요는 없을 것이다.
레디스의 백업은 항상 전체 백업(full backup)이다.
증분 백업(incremental backup)은 없다.
백업 시 AOF, RDB 파일을 압축하므로 이 사이즈를 고려해서 정하면 될 것이다.
일반적으로 512gB 면 된다.
AOF 파일 백업 방법은
AOF Backup
을 참고하세요.
정리 整理 Summary
레디스 서버 머신(박스) 스펙을 정리해 보았다.
아래는 3 인스턴스일 때 위의 내용을 정리한 것이다.
- Case 1) Memory(RAM): 45gB, SSD: 135gB, HDD: 512gB
- Case 2) Memory(RAM): 100gB, SSD: 300gB, HDD: 512gB
각 시스템의 특성에 맞게 증감해서 정하면 될 것이다.
이 글에서 CPU는 따로 언급하지 않았다.
레디스 서버가 생각보다 CPU 사용률이 높지 않다.
일반적인 서버 스펙으로 CPU를 정해면 문제가 없을 것이다.
이 글이 레디스 서버 머신 스펙을 정하는데 도움이 되기 길 바랍니다.
<< Copy-on-Write | Server Specification | Server Admin >> |
---|
조회수 :