항상 문자열 값을 반환하는 상태에 대한 설명서입니다BGREWRITEAOF
.BGREWRITEAOF
OK
글쎄, 오늘 BGREWRITEAOF
내 redis-server 2.6.7로 보냈고 (error) ERR
응답을 받았다 .
maxmemory
3G이고; appendonly
입니다 yes
. 이 시스템에는 4GB의 RAM이 있습니다.
어떻게 된 거예요?
항상 문자열 값을 반환하는 상태에 대한 설명서입니다BGREWRITEAOF
.BGREWRITEAOF
OK
글쎄, 오늘 BGREWRITEAOF
내 redis-server 2.6.7로 보냈고 (error) ERR
응답을 받았다 .
maxmemory
3G이고; appendonly
입니다 yes
. 이 시스템에는 4GB의 RAM이 있습니다.
어떻게 된 거예요?
답변:
AOF를 다시 작성하는 백그라운드 스레드에 메모리가 부족합니다. 로그는 다음과 같이 몇 백 ms마다 반복되었습니다.
[2435] * Starting automatic rewriting of AOF on 302% growth
[2435] # Can't rewrite append only file in background: fork: Cannot allocate memory
Redis는 백그라운드 스레드가 고착 된 루프에 들어가서 BGREWRITEAOF
새 스레드 를 시작할 수 없었습니다. Redis 서버를 다시 시작하면 몇 초의 가동 중지 시간으로 서버를 수정했습니다.