Desde a versão 2.6.28 do kernel, o Linux usa uma página Split menos usado recentemente (LRU) estratégia de substituição. Páginas com uma origem de sistema de arquivos, como texto de programa ou bibliotecas compartilhadas, pertencem ao cache de arquivos. Páginas sem suporte a sistemas de arquivos são chamadas de páginas anônimas e consistem em dados de tempo de execução como o espaço de pilha reservado para aplicativos etc. Geralmente, as páginas pertencentes ao cache de arquivos são mais baratas para serem removidas da memória (pois podem ser lidas do disco quando necessário) . Como as páginas anônimas não têm backup do sistema de arquivos, elas devem permanecer na memória, desde que sejam necessárias por um programa, a menos que haja espaço de troca para armazená-las.
Avm.swappiness
< A / a> opção entra em jogo em get_scan_count()
definido em mm/vmscan.c
. get_scan_count()
determina com que intensidade as listas de LRU anônimas e de arquivos devem ser verificadas ao procurar por páginas a serem despejadas. O valor de cada caso é determinado pela média flutuante dos índices recentemente rotacionados e recentemente escaneados, onde as referências mais recentes têm mais peso do que as mais antigas, a fim de levar em conta a carga de trabalho em mudança do sistema.
O vm.swappiness
é um modificador que altera o equilíbrio entre a troca de páginas de cache de arquivos em favor de páginas anônimas. vm.swappiness
é o valor de prioridade dado às páginas anônimas, Por padrão, configurado para 60 . O cache de arquivos recebe um valor de prioridade de 200, do qual o modificador vm.swappiness
é deduzido ( file_prio=200-anon_prio
). Isso significa que, por padrão, os pesos de prioridade são moderadamente a favor de páginas anônimas ( anon_prio=60
, file_prio=200-60=140
). No entanto, quando o sistema está perto de um condição de falta de memória , as listas LRU anônimas e de arquivo são verificadas igualmente, a menos que vm.swappiness
seja definido como zero.
Quando vm.swappiness
é definido como 100, as prioridades seriam iguais ( anon_prio=100
, file_prio=200-100=100
). Configurar vm.swappiness
para zero impedirá que o kernel elimine páginas anônimas em favor de páginas do cache de arquivos.