I have subscribed to a VPS offered by a hosting provider. The guaranteed performance 1GB RAM, 1M bandwidth.
But I found that from time to time the websites can be very slow, so slow that it could take more than 30 seconds to load a simple Joomla website. However the website resumed the usual speed after a few minutes.
This created a problem for me as when I wanted to report the performance problem to the hosting provider. They would say to me "see, no problem". Of course there was no problem because the problem was only there for a few minutes , and everything was normal after that.
This ocassionally-slow problem would bug me a few days later and the cycle repeats.
I'm pretty sure that this is not the webapp problem because all the websites on the same VPS suffer the same problem at the same time. And the slowness only affect during a certain ( very brief) period of time. After that everything is normal. The normality will last a few days when brief slowness attacked again, and the cycle repeats.
Any idea how to solve this problem? Or is, there any service that I can use to record the time-series of the response time?
Install Munin and it will make some really nice graphs for you
http://munin.ping.uio.no/ping.uio.no/bimbo.ping.uio.no-load-day.png http://munin.ping.uio.no/ping.uio.no/bimbo.ping.uio.no-load-day.png http://munin.ping.uio.no/ping.uio.no/knuth.ping.uio.no-if_eth0-day.png http://munin.ping.uio.no/ping.uio.no/knuth.ping.uio.no-if_eth0-day.png http://munin.ping.uio.no/ping.uio.no/bimbo.ping.uio.no-memory-day.png http://munin.ping.uio.no/ping.uio.no/bimbo.ping.uio.no-memory-day.png
There are some good plugins to graph response times also.
Then you got hard evidence to show the hosting provider.
Well, one thing you could do is to set up a monitoring service, with measures the load time of your page, detailing the duration of each phase: DNS resolution, connection, first byte and then every object. If you do this on a regular basis, you can show it to your provider.
For example, if the DNS resolution and connection time are short, bit first byte take a lot, it is likely not a network isue, but a server performance problem. I use the Firebug extension for Firefox to do this kind of debugging, and there are commercial services, that can do continuous monitoring for you.
You might take a look at Uggedal's comparison of the majors like Amazon, Linode, Slicehost,.... He has also released his benchmark software on Github -- the link is on his first page at the top.