Невозможно диагностировать проблему MISCONF redis при запуске рабочего сервера сельдерея

Я использую рабочий сервер сельдерея с Redis в качестве URL-адреса брокера (для получения задач), а также в качестве бэкэнда.

BROKER_URL = 'redis://localhost:6379/2' CELERY_RESULT_BACKEND = 'redis://localhost:6379/2' app = Celery('myceleryapp', broker=BROKER_URL,backend=CELERY_RESULT_BACKEND)

Я запускаю рабочий сервер сельдерея, используя celery -A myceleryapp worker -l info -c 8

Рабочие процессы начинают обрабатывать мои задачи из очереди Redis до тех пор, пока в какой-то момент я не получаю печально известную ошибку MISCONF redis, и рабочий процесс celery завершается.

Unrecoverable error: ResponseError('MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error.',)

Я проверил файлы журнала Redis в /var/log/redis, и в конце файла есть следующее

24745:C 19 Aug 09:20:26.169 * RDB: 0 MB of memory used by copy-on-write
1590:M 19 Aug 09:20:26.247 * Background saving terminated with success
1590:M 19 Aug 09:25:27.080 * 10 changes in 300 seconds. Saving...
1590:M 19 Aug 09:25:27.081 * Background saving started by pid 25397
25397:C 19 Aug 09:25:27.082 # Write error saving DB on disk: No space left on device
1590:M 19 Aug 09:25:27.181 # Backgroun1590:M 19 Aug 09:51:03.042 * 1 changes in 900 seconds. Saving...
1590:M 19 Aug 09:51:03.042 * Background saving started by pid 26341
26341:C 19 Aug 09:51:03.405 * DB saved on disk
26341:C 19 Aug 09:51:03.405 * RDB: 22 MB of memory used by copy-on-write
1590:M 19 Aug 09:51:03.487 * Background saving terminated with success  

Файл dump.rdb записывается в /var/lib/redis/dump.rdb. Поскольку журналы сообщили о No space left on device, я проверил место на диске, где смонтировано /var, и, кажется, осталось достаточно места (1.2GB).

Как добраться до основной причины этой ошибки, если на диске достаточно места? Конечно, чтобы этой ошибки не было, я мог бы установить config set stop-writes-on-bgsave-error no в redis-cli. Но я хочу добраться до основной причины этой ошибки. Любая помощь или указатели?


person hAcKnRoCk    schedule 21.08.2017    source источник


Ответы (1)


Возможно, это связано с файлом подкачки. Потому что файл подкачки занял 1,2 Гб на вашем диске. Итак, Redis жалуется, что нет места для записи.

Попробуйте эту команду «swapon -s», чтобы проверить это.

Я думаю, что 1,2 Гб недостаточно, если этот диск принимает подкачку страниц ОЗУ. вы должны изменить каталог RDB на более большой каталог.

person GuangshengZuo    schedule 21.08.2017
comment
Выглядит правдоподобно, но нет. swapon -s дает мне /dev/sdb1 partition 7811068 1966056 -1 и /buf/swap1 file 25165820 204128 -2 Мой '/var' сопоставляется с '/dev/sdb6', у которого есть rdb и свободное место на диске. - person hAcKnRoCk; 21.08.2017