param_appendfsync
Redis APPENDFSYNC Parameter
Redis Server Course | Redis Technical Support | Redis Enterprise Server |
---|
Redis appendfsync parameter
레디스 설정 파일인 redis.conf 에 있는 appendfsync 파라미터에 대한 설명입니다.
이 세가지 옵션을 살펴보기 전에 데어터가 클라이언트에서 부터 디스크로 쓰여지는 과정을 보자.
이제 세 가지 옵션에 대해서 알아보자.
설명
appendfsync는 appendonly 파일에 데이터가 쓰여지는 시점을 정하는 파라미터이다. 세 가지 옵션(always, everysec, no)이 있다.이 세가지 옵션을 살펴보기 전에 데어터가 클라이언트에서 부터 디스크로 쓰여지는 과정을 보자.
- Step 1: 클라이언트가 레디스 서버로 데이터를 보내다. 데이터는 현재 클라이언트 메모리에 있다.
- Step 2: 레디스 서버가 데이터를 받는다. 데이터는 서버 메모리에 있다.
- Step 3: 레디스 서버가 데이터를 디스크에 쓰는 write() 시스템 콜을 호출한다. 데이터는 커널 버퍼에 있다.
- Step 4: 운영체제(OS)는 fsync() 시스템 콜을 호출해서 버퍼에 있는 데이터를 디스크 제어기(controller)에 쓴다. 데이터는 디스크 케시(cache)에 있다.
- Step 5: 디스크 제어기는 물리적으로 디스크에 기록한다.
이제 세 가지 옵션에 대해서 알아보자.
- always: 레디스 명령이 실행될 때 마다 디스크에 쓴다. 성능이 매우 떨어진다. 아주 특별한 경우가 아니면 권하지 않는다.
- everysec: 데이터를 모아서 1초 마다 디스크에 쓴다. Write()와 fsync() 시스템 콜 호출의 지연 시간에 따라서 최대 2초 이내의 데이터를 잃어 버릴 수 있지만, 성능과 데이터 보존 양 측면에서 적절한 값이다. 기본값이다.
- no: 디스크에 쓰는 시점을 운영체제(리눅스)에 맡긴다. 대부분의 리눅스 시스템에서는 30초 마다 디스크에 저장된다. 그러므로 운이 나쁠 경우 최대 30초간의 데이터를 유실할 수 있다.
사용 방법
appendfsync always
appendfsync everysec <기본값>
appendfsync no
appendfsync everysec <기본값>
appendfsync no
<< APPENDFILENAME | NO-APPENDFSYNC-ON-REWRITE >> |
---|
조회수 :
Email
답글이 올라오면 이메일로 알려드리겠습니다.