Como o meu servidor está batendo swap?

5

Aqui está o resumo do comando 'top'

início - 20:14:50 até 18 dias, 23 min, 1 usuário, média da carga: 0,22, 0,20, 0,18 Tarefas: 99 no total, 1 corrida, 98 dormindo, 0 parado, 0 zumbi CPU (es): 1,1% us, 0,1% sy, 0,0% ni, 94,2% id, 3,5% wa, 0,0% hl, 0,0% si, 1,2% st Mem: 2092032k total, 471684k usado, 1620348k livre, buffers de 924k Troca: total 4194296k, 153940k usado, 4040356k livre, 42564k cached

Como você pode ver, de 2GB de memória apenas cerca de 461MB é usado. Ao mesmo tempo, mostra que 150MB de swap são usados.

Como isso é possível? Por que meu servidor bateu swap se há memória física livre?

    
por nano 20.09.2009 / 16:56

2 respostas

7

Em circunstâncias normais, o Linux irá trocar as coisas quando elas não estiverem sendo usadas, mesmo que ainda haja espaço livre na RAM. Em vez disso, manterá arquivos em cache. Você pode ajustar esse comportamento alterando vm.swappiness com systctl. Mais detalhes sobre os detalhes exatos de como isso funciona podem ser encontrados aqui .

    
por 20.09.2009 / 17:06
6

O Linux troca agressivamente o espaço de endereço que não é usado ativamente por algum tempo. Ele faz isso para disponibilizar mais RAM para caches de sistema de arquivos (bem, na verdade caches SLAB) ou aplicativos usando memórias compartilhadas, um disco RAM e assim por diante. Normalmente, isso é exatamente o que você quer.

Para ler mais, recomendo Linux: Tuning Swappiness para uma explicação detalhada, embora você provavelmente não tenha que tocar no tunables mencionados ali, sempre.

    
por 20.09.2009 / 17:06

Tags