Com o prefork mod_php você está mais ou menos indiferente sobre o uso da RAM / CPU de diferentes vhosts. O problema é que todos os processos apache são executados sob o mesmo usuário e cada processo atende a todos os vhosts. Portanto, um processo pode servir vhostA em um momento e vhostB em outro.
Para piorar a situação, com cada solicitação atendida, para processos apache com mod_php, o uso de RAM tende a crescer até que o processo atenda às solicitações MaxRequestPerChild, após o qual o processo se retira e o processo novo, pequeno e enxuto toma o seu lugar. Portanto, é praticamente impossível rastrear o uso de recursos com o prefork / mod_php.
O que você pode fazer é utilizar uma ferramenta que analise o access_log, como o apachetop, e observe o tipo de solicitações que o apache oferece. Isso não lhe dará resultados muito precisos, mas pelo menos você verá algum tipo de padrão. Isso pode ajudá-lo se um de seus vhosts estiver debatendo o servidor inteiro.
Por outro lado, se você quiser uma solução melhor, há algumas maneiras de você poder solucionar esse problema. Você poderia trocar o prefork por itk. O mpm-itk permite que você execute cada vhost sob diferentes UID / GID - o que, por sua vez, resolverá seu problema de métricas de consumo de recursos - você pode simplesmente monitorar o uso de RAM por UID, por exemplo.
Outra direção é o PHP-FPM com um pool separado para cada vhost. Mas isso só separará o consumo de recursos do PHP, você ainda não poderá ver o que o apache faz. Mas, com a remoção do mod_php dos processos do apache, você pode executá-los com o mpm-worker (modelo encadeado) e o uso de RAM do apache provavelmente seria insignificante em comparação com o PHP. Em relação à marcação de processos, você pode simplesmente executá-los em diferentes UID.