A simple test: put this script on your web server, and then invoke it from a browser:
function rutime($ru, $rus, $index) {
return ($ru["ru_$index.tv_sec"]*1000 + intval($ru["ru_$index.tv_usec"]/1000)) - ($rus["ru_$index.tv_sec"]*1000 + intval($rus["ru_$index.tv_usec"]/1000));
}
phpinfo();
$ru = getrusage();
echo "This process used " . rutime($ru, $rustart, "utime") . " ms for its computations\n";
echo "It spent " . rutime($ru, $rustart, "stime") . " ms in system calls\n";?>
Then check the end of the document. If you see it low, then it's not a real performance problem, as phpinfo() take most of its data from memory. Consider it can also be a network problem.
Also, following the same line as Criot, it's important to note that the old OpenVZ-based VPS Classic, which were available just a few months ago, can have serious performance problems, because all the CTs on the same node share resources and are usually overloaded.