What you need to do will tend to depend on the nature of the problem.
Is there anything in the mysql queries being executed that will identify the site, for example, does some parameter in the queries identify the site for which the query is being invoked? If so, then this command:
Code:
show full processlist;
executed from the mysql client command as a mysql administrator, might show you which sites are causing the load as far as mysql is concerned.
If there isn't a parameter that identifies the site, you might wish to add something to identify the site that causes a query to be run. Then either the processlist or the mysql logs might be helpful in identifying slow or frequent queries.
Also, apache access logs can sometimes be helpful in such cases.
At a system level:
will show you the process tree for each process ( which may be relevant depending on how you have things configured ).
If you have a collection of connections that are maintained between apache and mysql, then this next thing wouldn't help. But if you have apache repeatedly connecting and dropping connections to mysql, then a command such as:
may show you if you have a lot of connections timing out after disconnect for a particular site ( implying that a lot of connections were made and have been disconnected, so there is likely a lot of activity for that site ).
I realize that is all rather general, but without additional details on how you have things configured it's difficult to be specific. Perhaps you could give tell us more about how you have things set up.