powershell memory redis heap windows-server-2008

powershell - El servidor de Redis no puede ejecutar más de 1024M maxheap



memory windows-server-2008 (5)

Esta es la forma de usar el indicador maxheap, que es más conveniente que usar un archivo de configuración:

redis-server --maxheap 2gb

Estoy ejecutando Redis 2.8.19 en Windows Server 2008. Recibo un error que dice que no tengo suficiente espacio en el disco para mi montón de Redis. (El archivo de mapeo de memoria en lugar de fork ()).

Solo puedo hacer que Redis se ejecute, si tengo ''maxheap 1024M'' en el cfg, aunque tengo ~ 50GB de espacio libre en el directorio en el que configuré ''heapdir''.

Si trato de ejecutarlo con un maxheap más alto, o sin un maxheap, recibo este error (PowerShell):

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

PS D: / redis-2.8.19>. / Redis-server.exe

[7476] 25 feb 09: 32: 38.419 # La versión para Windows de Redis asigna un gran archivo de memoria asignada para compartir el montón con el proceso bifurcado utilizado en las operaciones de persistencia. Este archivo se creará en el directorio de trabajo actual o en el directorio especificado por la directiva ''heapdir'' en el archivo .conf. Windows informa que no hay suficiente espacio en disco disponible para este archivo (error 0x70 de Windows).

Puede solucionar este problema reduciendo el tamaño del montón Redis con el indicador --maxheap o moviendo el archivo del montón a una unidad local con espacio suficiente. Consulte la documentación incluida con las distribuciones binarias para obtener más detalles sobre los indicadores --maxheap y --heapdir.

Redis no puede continuar. Saliendo

Captura de pantalla: http://i.stack.imgur.com/Xae0f.jpg

  • Espacio libre en D: 49,4 GB
  • Espacio libre en C: 2,71 GB.
  • RAM total: 16 GB
  • RAM libre: ~ 9 GB

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"

Todo lo que está junto a las últimas 3 líneas se genera mediante redis con el cmd ''CONFIG REWRITE''. He intentado varias cosas, con maxmemory, maxheap y heapdir.

De la documentación de Redis:

maxmemory / maxheap: el indicador maxheap controla el tamaño máximo de este archivo asignado en memoria, así como el espacio total utilizable para el montón Redis. Al ejecutar Redis sin maxheap o maxmemory, se creará un archivo mapeado en memoria que es igual al tamaño de la memoria física; El montón Redis debe ser mayor que el valor especificado por maxmemory

¿Alguien ha encontrado este problema antes? ¿Qué hago mal?


Para respaldar la respuesta de Michael, he tenido el mismo problema.

Tenía ~ 40 GB de espacio libre, y el archivo de paginación está configurado en 4G-8G. Redis no quiso comenzar hasta que configuré el archivo de paginación a la cantidad recomendada por Windows, que era de 12 GB.

Realmente extraño beahaviour.


Redis no usa el archivo conf en su directorio de inicio por defecto. Tienes que pasar el archivo en la línea de comando:

./redis-server.exe redis.windows.conf

Esto es lo que está en mi archivo conf:

maxheap 2048M heapdir D://redisheap

Esta configuración resolvió mi problema.


maxheap 2048M

heapdir D: / "ubicación donde está su servidor

Esto debería resolver el problema Por favor, hazme un ping si tienes la misma pregunta


./redis-server.exe redis.windows.conf

Esto es lo que está en mi archivo conf:

maxheap 2048M heapdir D://redisheap

después de pasar los parámetros anteriores en redis-server.exe redis.windows.conf

El servicio ha comenzado para mí gracias por la solución.