Freemem é uma memória não alocada que está imediatamente disponível. Isso é usado ao iniciar programas e normalmente você terá problemas se isso ficar muito baixo. O monitoramento para garantir que você tenha alguns MB livres deve ser suficiente. Eu monitora para 1 MB no meu roteador de 32 MB OpenWrt e 10 MB no meu Ubuntu. Eu também monitore o uso de swap, pois isso diminuirá à medida que a carga de memória aumentar.
Quando os programas são iniciados, eles geralmente não usam toda a memória requerida inicialmente. É comum que o tamanho virtual de um programa seja muito maior que o tamanho residente (na memória). A memória restante pode ser alocada a partir do disco (código da imagem do programa e das bibliotecas que ela utiliza) e swap (alocada mas não usada).
Você provavelmente verá problemas significativos de desempenho se a memória armazenada em cache ficar muito baixa. Dependendo de como a troca é codificada e configurada, é provável que as páginas inativas sejam trocadas para criar espaço para o seu programa. Isso geralmente resulta em menos troca de página do que o esperado.
Eu monitoraria a memória em cache para garantir o desempenho dos programas em execução, em vez de garantir que a memória esteja disponível para iniciar programas enormes.