redis: Corrigindo erro de memória ao salvar o instantâneo no banco de dados

0

Eu vejo o seguinte erro nos logs redis:

[17541] 10 Aug 16:13:21.055 * 1 changes in 900 seconds. Saving...

[17541] 10 Aug 16:13:21.055 # Can't save in background: fork: Cannot allocate memory [17541]

E mensagem de erro dizendo:

> Error running script (call to
> f_1477e1798ff8d1bae3066a94781114c056f9ef08): @user_script:8:
> @user_script: 8: -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.

Isso parece estranho, já que o arquivo dump.rdb parece ser razoavelmente pequeno ~ 90Mb. E também me cansei de criar outro arquivo na mesma pasta, e consegui fazê-lo (então o espaço em disco não é o problema). Permissões parece ser bom para mim:

ubuntu@ip-172-31-39-198:/var/lib/redis$ ls -hla
total 89M
drwxr-xr-x  2 redis redis 4.0K Aug 10 16:23 .
drwxr-xr-x 47 root  root  4.0K Aug 10 15:18 ..
-rw-rw----  1 redis redis  89M Aug 10 15:19 dump.rdb

Depois de algumas pesquisas, descobri isso como uma solução: echo 1 > / proc / sys / vm / overcommit_memory sysctl vm.overcommit_memory = 1

O que não faz sentido para mim, já que esperava que o problema fosse resolvido com a configuração do redis ... Você poderia aconselhar o que fazer?

    
por Oleg Tarasenko 10.08.2014 / 18:17

1 resposta

3

como declarado aqui , talvez você queira sysctl vm.overcommit_memory=1 como su e talvez edite /etc/sysctl.conf para adicionar vm.overcommit_memory=1

    
por 20.11.2014 / 11:38

Tags