Por que faz sentido trocar o cache?

Por que faz sentido trocar o cache?

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

Responder1

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

Responder2

Nunca ouvi falar desse e também não faz muito sentido para mim. Ainda acho que a boa e velha regra de garantir que ele simplesmente não seja trocado (exceto, é claro, as reservas) é a melhor. Agora, teoricamente, o armazenamento em cache de coisas na memória direta disponível, que demora um pouco para carregar de algo tão lento quanto um disco, tem uma vantagem aparente. Mas se você consegue armazenar em cache as páginas a serem trocadas, por que trocar novamente?

Responder3

O objetivo de duplicar páginas entre swap e RAM é evitar esperar pelo disco se:

  1. Algo precisa ser lido deles

  2. Eles precisam ser despejados para dar lugar a outra coisa

Se eles estivessem apenas em swap, o caso 1. significaria esperar que eles chegassem do disco; se eles estivessem apenas na RAM, o caso 2 significaria esperar que eles fossem para o disco.

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

informação relacionada