O swappiness é absoluto ou relativo ao tamanho da memória?

0

A quantidade de memória virtual que permanece na memória física depende do tamanho da memória física?
Vamos supor que eu tenha um parâmetro de swappiness de 60 e 4 GB de meus 8 GB sejam preenchidos com dados de aplicativos, e os outros 4 GB sejam preenchidos com o cache de arquivos. Will, sob a mesma carga de trabalho com o mesmo parâmetro de swappiness, mas apenas 4GB de memória física, todos os 4GB serão preenchidos com dados de aplicativos ou menos do que isso?

    
por hyperfekt 16.08.2017 / 23:29

1 resposta

1

É proporcional e não se baseia no tamanho da memória. O código está em mm/vmscan.c . Após verificar algumas condições patológicas, como estar completamente sem espaço de troca (então apenas as páginas lastreadas em arquivos serão verificadas como candidatas a serem despejadas da memória), ficando quase sem memória (a memória anônima e de arquivo será verificada igualmente ), ou o cache de páginas se tornou muito grande e cheio de páginas inativas (somente as páginas lastreadas em arquivos serão escaneadas), nós atingimos isto:

/*
 * With swappiness at 100, anonymous and file have the same priority.
 * This scanning priority is essentially the inverse of IO cost.
 */
anon_prio = swappiness;
file_prio = 200 - anon_prio;

Essas prioridades são ajustadas com base no sucesso que o scanner de memória teve recentemente na liberação de memória de cada tipo. Em seguida, a memória de cada tipo é digitalizada proporcionalmente e as páginas que não foram usadas recentemente serão despejadas.

Resumindo, tudo depende da carga de trabalho. O valor do swappiness informa ao sistema qual prioridade atribuir à tentativa de trocar a memória anônima, mas os padrões de acesso à memória determinarão o que realmente acontece.

    
por 24.08.2017 / 23:54