Seu uso de memória parece alto. Posso ver que você está usando bastante espaço de troca no momento em que coletou essa informação do topo, mas é realmente a quantidade de dados entrando e saindo do swap em vez da quantidade em uso que é o problema. Eu estou supondo que este é o caso.
O seu swap usou a figura mudando de leitura para leitura? Se assim for, isso é quase certamente o seu problema e, em qualquer caso, você se beneficiará com a redução do uso de memória e / ou adição de RAM à sua VM.
também, se a troca de agitação for o seu problema, então quando a sua máquina estiver fazendo alguma coisa, você verá o número de processos aguardando aumento de estado. É "0,0% wa" na sua listagem, mas como o sistema está exibindo 100% de ociosidade, presumo que esteja entre as solicitações da Web que causariam problemas.
Apenas fazendo um cálculo do tipo de envelope, se seus processos do apache atualmente consomem cerca de 5% da sua RAM (e alguns mais), então permitir até 40 deles (MaxClients) é um problema, e usaria cerca de duas vezes muita RAM como você realmente tem.
Para uma pequena máquina de desenvolvimento como a sua, eu fixaria o número de processos do apache em um número pequeno, sem muita movimentação dinâmica, e reciclaria os processos do apache com frequência. Também mantenha o keepalive muito curto para que eles não sejam amarrados por muito tempo.
Timeout 20
KeepAlive On
MaxKeepAliveRequests 500
KeepAliveTimeout 1
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 3
MaxSpareServers 5
MaxClients 5
MaxRequestsPerChild 10
</IfModule>
Se você tiver mais de uma ou duas pessoas usando isso de uma só vez, tente passar a entrega de conteúdo estático para algo com encadeamento único e acenda o uso da memória. Você poderia fornecer conteúdo estático a partir de um peso mais leve, como o nginx, mas seria mais fácil configurar algo como o squid como um cache de proxy de front-end, com talvez 50 a 100 MB de cache.
Verifique se você está usando o cache APC para armazenar em cache o PHP compilado. Com o APC você vai querer aumentar a quantidade de espaço atribuído ao cache, e isso reduzirá bastante o uso de RAM, já que o PHP compilado estará em memória compartilhada, em vez de ser compilado separadamente em cada processo do apache em cada pedido.