Eu tenho uma unidade qnap nas na qual eu estava tentando criar um destino iscsi adicional e o processo de criação falha. Eu não estou tentando fazer nada que eu não tenha feito em outras unidades idênticas, mas esta está sendo executada há mais tempo.
ssh e dê uma olhada
O dmesg contém entre muitas outras coisas:
[3431220.016334] SLAB: Unable to allocate memory on node 0 (gfp=0xd0)
[3431220.016335] cache: kmalloc-65536, object size: 65536, order: 4
[3431220.016341] node 0: slabs: 12/12, objs: 12/12, free: 0
Ok, temos a causa do problema.
# cat /proc/meminfo
MemTotal: 3939760 kB
MemFree: 190480 kB
Buffers: 3212476 kB
Cached: 188868 kB
SwapCached: 48 kB
Portanto, toda a memória alocada para buffers. Pouco surpreendente em uma máquina linux que faz pouco além do bloco IO
# cat /proc/buddyinfo
Node 0, zone DMA 8 2 1 1 1 1 1 1 2 2 2
Node 0, zone DMA32 22614 389 0 1 1 2 3 1 0 0 0
Node 0, zone Normal 12150 7683 0 2 5 2 1 1 0 0 0
ai. Isso está mostrando alguma fragmentação de memória severa, com virtualmente nenhum bloco maior que 8K disponível.
Existe alguma maneira de limpar o problema de fragmentação de memória (reduzindo temporariamente a memória alocada para buffers ou de outra forma) sem reiniciar a máquina, um processo que será extremamente inconveniente?
Além disso, é provável que adicionar mais memória a uma máquina usada desse modo ajude esse problema em particular, obviamente há outras vantagens em atualizar a memória.