DBAtlas · 데이터베이스 운영 아틀라스

BUSY: BUSY Redis is busy running a script. You can only call SCRIPT KILL or SHUTDOWN NOSAVE

Redis

의미

장시간 실행되는 Lua 스크립트 또는 함수가 busy-reply-threshold(Redis 7 이전 이름은 lua-time-limit, 기본 5000 ms)를 초과했다. Redis는 단일 스레드이므로 이 동안 다른 명령을 처리할 수 없으며, SCRIPT KILL(함수는 FUNCTION KILL) 또는 SHUTDOWN NOSAVE만 허용된다.

원인

무한 루프 또는 매우 오래 실행되는 Lua 스크립트/함수, 무거운 연산, 대용량 데이터를 순회하는 스크립트, 또는 잘못 작성된 EVAL 호출.

해결 방법

스크립트가 데이터를 수정하지 않았다면 중지한다: SCRIPT KILL. 스크립트가 이미 쓰기를 수행했다면 SCRIPT KILL은 동작하지 않는다. 데이터 일관성을 지키기 위한 최후의 수단으로 SHUTDOWN NOSAVE가 필요할 수 있다(저장되지 않은 데이터는 유실되므로 주의한다). 스크립트는 짧고 결정적으로 작성한다. 긴 작업은 분할한다. busy-reply-threshold(이전 lua-time-limit) 설정을 검토한다.

DBAtlas에서 열기 →

같은 데이터베이스의 다른 항목