Como funciona a memória cache no unix?

0

Hoje meu sistema travou com:

Feb 24 20:07:34 kernel: [46929872.935456]  [<ffffffff81141073>] ? out_of_memory+0x473/0x4b0

Mas ainda consegui logar no SHH e abrir o top, muitos aplicativos travaram e se recusaram a iniciar, mas no top apenas 50% da minha memória foi marcada como "used" e mais 50% da memória foi marcada como "Mem cached".

Sempre achei que a memória em cache é usada para armazenar arquivos em cache para reduzir a gravação / leitura da unidade e, quando o programa precisa alocar mais memória, alguns arquivos são descartados do cache e usados para executar programas. Mas, aparentemente, isso não é verdade, porque 50% da minha memória total foi usada para o cache e o sistema ainda travou, enquanto deveria deixar um pouco de cache.

Alguém pode me dar uma explicação mais detalhada de como funciona a memória em cache? Obrigado.

    
por Welite 24.02.2018 / 22:32

1 resposta

1

Talvez tenha sido dados de cache de gravação. Deixar cair isso exigiria que fosse gravado primeiro em sua localização final em disco. E se você tiver um disco com falha que não esteja reconhecendo nenhuma operação de gravação nem com êxito nem com falha, esses caches não poderão ser descartados.

Eu vi alguns discos antigos falharem assim: eles não relatam uma falha real, mas ficam presos em um loop de tentativas infinitas. Provavelmente não deveria acontecer, mas parece que sim.

    
por 25.02.2018 / 01:20

Tags