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.