Por que faz sentido trocar o cache?

9

Parece-me bastante contraproducente armazenar em cache as páginas que são trocadas. Se você trocar páginas, qual é a vantagem de armazená-las primeiro na memória, apenas para movê-las para o lugar certo? Mesmo que as páginas sejam trocadas de forma proativa, não faz mais sentido "apenas" trocá-las? Na verdade, a troca de cache não é apenas um desperdício de recursos?

    
por txwikinger 14.08.2010 / 07:10

3 respostas

12

Depois de mais algumas pesquisas, descobri que o termo SwapCached em /proc/meminfo é enganoso. Na verdade, ele se refere ao número de bytes que são simultâneos na memória e na troca, de modo que, se essas páginas não estiverem sujas, elas não precisarão ser trocadas.

    
por 16.08.2010 / 20:29
0

Nunca ouvi falar disso e também não faz muito sentido para mim. Eu ainda acho que a boa e velha regra de garantir que ele não troque (exceto, é claro, as reservas) é melhor. Agora, teoricamente, o armazenamento em cache de material na memória disponível direta, que demora um tempo para ser carregado de algo tão lento quanto um disco, tem uma aparente vantagem. Mas se você é capaz de armazenar em cache as páginas a serem trocadas, por que trocar novamente em primeiro lugar?

    
por 14.08.2010 / 13:14
0

O ponto de ter páginas duplicadas entre swap e RAM é evitar a espera pelo disco se:

  1. Algo precisa ser lido por eles

  2. Eles precisam ser despejados para abrir espaço para outra coisa

Se eles estivessem apenas em troca, o caso 1. significaria esperar que eles viessem do disco; se eles estivessem apenas na RAM, o caso 2. significaria esperar que eles saíssem para o disco.

(Claro, o caso 2 é na verdade um pouco mais complicado, já que obviamente é mais barato remover tais páginas, então o kernel provavelmente as expulsa preferencialmente, mas o ponto deve ficar claro.)

    
por 04.09.2012 / 18:58