OK, então vamos passar por cada bit.
Memória ativa são regiões de memória que são lançadas no topo da pilha LRU (basicamente, são chamadas muito).
Memória inativa é algo que não está sendo muito usado e é uma troca de nome caso a memória precise ser trocada.
Grátis é uma memória genuinamente livre. Cerca de 40Mb. O que dá?
A pista está nas seguintes linhas:
DMA: 2358*4kB 912*8kB 25*16kB 0*32kB 0*64kB 0*128kB
0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB 0*8192kB
0*16384kB = 17128kB
Normal: 4266*4kB 657*8kB 32*16kB 1*32kB 0*64kB 0*128kB
0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB 0*8192kB
0*16384kB = 22864kB
Este material denota fragmentação de memória. Isso basicamente mostra quanta memória está contiguamente disponível. E aqui está o seu problema.
De memória normal livre, você não tem mais que 32kb de memória contígua disponível. Sua memória está terrivelmente fragmentada. Isso significa que, se qualquer aplicativo precisar alocar mais de 32k de espaço, não haverá memória - então o killer chega para chutar alguma coisa para dar memória para fazer isso.
Então, o que você pode fazer?
A pista para que é esta:
Free swap = 0kB
Total swap = 0kB
Oh querida! Nenhuma troca! Então, memória que está comprometida - só fica lá. Kernels mais novos atualmente 'desfragmentam' a memória para tornar a região da memória contígua, os mais antigos não fazem isso.
Você tinha 70Mb de memória que poderia foi trocada! Além disso, isso não ocorreria de uma só vez, mas gradualmente, não teria sido um sucesso para você. Mas sem troca, então sem sorte. Você também tem pouca memória para o pagecache, que também é ruim e lento para o seu sistema. Isso potencialmente poderia dar muito mais espaço contíguo livre, o que seria bom para você.
Meu conselho para você. Arranja 768Mb de swap. Honestamente, você realmente presta um desserviço ao seu kernel, não permitindo isso.
O swap é realmente importante para liberar memória não usada (um quarto dela no seu caso) e também teria evitado os problemas desagradáveis de fragmentação que você experimentou, já que a memória poderia ter sido trocada e liberada mais espaço contíguo. E mesmo se ele fosse trocado de volta, ele poderia ter sido colocado de volta em uma região de memória que lhe proporcionaria maiores intervalos contíguos.