fragmentação de memória nas nas

1

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.

    
por camelccc 30.06.2016 / 15:25

1 resposta

2

Tente emitir sync; echo 3 > /proc/sys/vm/drop_caches . Isso liberará toda a memória em cache / buffer.

Se isso não funcionar, você pode tentar compactar / desfragmentar a memória emitindo o seguinte comando: echo 1 > /proc/sys/vm/compact_memory

    
por 30.06.2016 / 15:53