Com que rapidez e eficiência o SO pode liberar a RAM armazenada em cache?

1

Eu sei sobre o conceito de "Free RAM é um desperdício de memória RAM". Minha pergunta é a rapidez e eficiência com que o sistema operacional libera a RAM armazenada em cache, de modo que os aplicativos tenham RAM suficiente no momento de um pico de uso.

Temos um aplicativo da web hospedado no linux. Normalmente, temos 10-20% de utilização de memória. Mas vemos picos de até 100% quando certas partes do código são invocadas (o código foi otimizado no máximo). Quero disparar um email quando isso acontece. Devo escrever um script para monitorar a utilização da memória, incluindo Cache ou apenas a memória do aplicativo?

Quando ocorre o erro Out of Memory no linux, significa que a memória cache é zero e toda a RAM já foi alocada para os aplicativos?

    
por Jibin 09.10.2017 / 11:19

2 respostas

1

Sim, significa que o sistema operacional limpou toda a memória usada para o armazenamento em cache do sistema de arquivos. Basicamente seu servidor / aplicativo está fazendo um malloc para uma certa quantidade de memória e o kernel libera a memória e a fornece para o aplicativo usar. Esta é uma chamada atômica e não bloqueia o aplicativo.

Você simplesmente precisa de mais memória no servidor ou manipula menos conexões.

    
por 09.10.2017 / 13:19
0

Quando um evento OOM como o killer OOM acontece, toda a RAM e swap são usadas, buffers e cache são no mínimo, e você já tem um desempenho ruim. Mantenha o uso de memória abaixo de 100%.

No Linux, você pode interpretar / proc / meminfo

MemAvailable é uma estimativa de quanto pode ser alocado sem trocar

MemFree + Buffers + Cached está efetivamente livre.

    
por 09.10.2017 / 15:20