Сервер Redis не может работать больше, чем 1024M maxheap

Я запускаю Redis 2.8.19 на Windows Server 2008. Я получаю сообщение о том, что у меня недостаточно дискового пространства для кучи Redis. (Файл сопоставления памяти вместо fork()).

Я могу только запустить Redis, если у меня есть "maxheap 1024M" в cfg, хотя у меня есть ~ 50 ГБ свободного места в каталоге, в котором я установил "heapdir".

Если я попытаюсь запустить его с более высоким maxheap или без maxheap, я получаю эту ошибку (PowerShell):

PS C:\Users\admasgve > cd D:\redis-2.8.19

PS D:\redis-2.8.19 > .\redis-server.exe

[7476] 25 февраля 09: 32: 38.419 # Версия Redis для Windows выделяет большой файл с отображением памяти для совместного использования куча с разветвленным процессом, используемым в операциях сохранения. Этот файл будет создан в текущем рабочем каталоге или в каталоге, указанном в директива 'heapdir' в файле .conf. Windows сообщает, что есть недостаточное дисковое пространство для этого файла (ошибка Windows 0x70).

Вы можете решить эту проблему, уменьшив размер кучи Redis с помощью флаг -maxheap или перемещение файла кучи на локальный диск с достаточным пространство. См. Документацию, содержащуюся в бинарных дистрибутивах для получения дополнительной информации. подробности о флажках -maxheap и -heapdir.

Redis не может продолжаться. Выход.

Снимок экрана: http://i.stack.imgur.com/Xae0f.jpg

  • Свободное место на D: 49,4 ГБ
  • Свободное место на C: 2,71 ГБ
  • Общая оперативная память: 16 ГБ
  • Свободная оперативная память: ~ 9 ГБ

redis.windows.conf:

# Generated by CONFIG REWRITE
loglevel verbose
logfile "stdout"
save 900 1
save 300 10
save 60 10000
dir "D:\\redis-2.8.19"
maxmemory 1024M
# maxheap 2048M
heapdir "D:\\redis-2.8.19"

Все, что связано с последними тремя строками, генерируется redis с помощью команды "CONFIG REWRITE" cmd. Я пробовал разные вещи, с maxmemory, maxheap и heapdir.

Из документации Redis:

maxmemory/maxheap - флаг maxheap контролирует максимальный размер этого файла с отображением памяти, а также общее полезное пространство для кучи Redis. Запуск Redis без maxheap или maxmemory приведет к созданию файла с отображением памяти, который равен размеру физической памяти; Куча Redis должна быть больше значения, указанного maxmemory

Кто-нибудь сталкивался с этой проблемой раньше? Что я делаю неправильно?

Ответ 1

Redis не использует файл conf в своем домашнем каталоге по умолчанию. Вы должны передать файл в командной строке:

.\redis-server.exe redis.windows.conf

Это то, что находится в моем файле conf:

maxheap 2048M
heapdir D:\\redisheap

Эти параметры разрешили мою проблему.

Ответ 2

Вот как использовать флаг maxheap, который более удобен, используя конфигурационный файл:

redis-server --maxheap 2gb

Ответ 3

Чтобы создать резервную копию ответа Майкла, у меня была та же проблема.

У меня было ~ 40 ГБ свободного места, а файл подкачки - 4G-8G. Redis не хотел запускать, пока я не установил файл подкачки на сумму, рекомендованную самими Windows, которая составляла 12 ГБ.

Действительно нечетный beahaviour.

Ответ 4

.\redis-server.exe redis.windows.conf

Это то, что находится в моем файле conf:

maxheap 2048M

heapdir D:\\redisheap

после передачи вышеуказанных параметров в redis-server.exe redis.windows.conf

служба запустила для меня благодарность за решение.

Ответ 5

maxheap 2048M

heapdir D:\"где ваш сервер

Это должно решить проблему Пожалуйста, пиньте меня, если у вас есть тот же вопрос