I'm very new to server administration (and this is my first post here), so please forgive me if I get something wrong...
I'd suggest to:
1) Enable PHP suexec. This way, all the PHP processes will be shown in the output of ps aux, along with the username that's running it. I'm not sure how you do this manually, as I've always done it with the /scripts/easyapache script that comes with cPanel
2) Enable the Apache server-status page. In httpd.conf (Apache 1) or apache2.conf (Apache 2), there's a section similar to this:
# <Location /server-status>
# SetHandler server-status
# Order deny,allow
# Deny from all
# Allow from .example.com
Uncomment the code, and change the '.example.com' to your IP address. Then, go to example.com/server-status (obviously, with the correct URL). This will show a page with all the current Apache requests. A virtual host with heaps of requests is probably what's causing the load.