Tente otimizar a operação antes de considerar as atualizações de hardware.
Além disso, eu geralmente recomendo que você ative o oom killer, já que isso mataria qualquer processo que consumisse todos os servidores ram. Naturalmente, você precisaria de uma maneira atualizada de reiniciar o apache novamente (por exemplo, daemontools).
Mas antes disso, suponho que você possa procurar definir a diretiva MaxClients para o apache. Isso limita a quantidade de solicitações que o apache atenderá por vez e enfileirará as outras. Para prefork, isso limita a quantidade de processos filhos. Para trabalhador, limita a quantidade de encadeamentos disponíveis para atender solicitações.
"Maxclients $ number" é a sintaxe e você pode experimentar o número de MaxClients para ver o quão alto você pode configurá-lo sem consumir muitos recursos do servidor.
Naturalmente, esse conselho é baseado na suposição de que você já identificou o apache como a causa do seu problema de memória.