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

0

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 determinadas partes do código são invocadas (o código foi otimizado no máximo). Desejo 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 / 09:35

1 resposta

0

How quickly and efficiently the OS can free up the cached RAM, so that apps have enough RAM in time of a spike in usage?

A menos que você esteja usando o ZFS no Linux com o qual o ARC pode não diminuir o suficiente para absorver uma súbita demanda de RAM, o tempo gasto pelo kernel para liberar os caches é insignificante, como já comentou Kusalananda.

Should I write a script to monitor memory utilisation including Cache or just the application memory ?

Eu monitoraria a memória do aplicativo e a do sistema. Quando o cache é reduzido para liberar espaço para a memória do aplicativo, o desempenho pode cair porque são necessárias mais E / Ss de disco.

When the Out of Memory error occurs in linux, does it means cache memory is zero and all the RAM has been already allocated to applications ?

Quando uma memória insuficiente ocorre, a maioria dos buffers / cache foi liberada / liberada, mas isso não significa all a memória é usada pelos aplicativos. Uma parte da memória ainda é usada pelo kernel, e possivelmente por um sistema de arquivos baseado em RAM ou diretamente por algum hardware.

    
por 09.10.2017 / 15:33