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.