What to do when your virtual private server is really slow

Ok, this is not a real solution for all types of problems – just a tip, that worked for me today, to try out if you can’t figure out what the problem is.

I’m running a VM on Amazon EC2, and looking at top, I saw that most of the CPU time was spent either in “steal/guest” or “IRQ“. Now steal/guest is kernel speak for “I wanted to allocate some CPU time for progams, but the hypervisor stole it” – which is not surprising on a a virtualization solution, but if it happens all the time then that means that your physical host is constantly loaded by other VMs that take as much CPU time as they can. The second item “IRQ” is time the kernel spends at handling interrupt requests from the hardware. This shouldn’t consume a significant amount of time unless the hardware has a problem – another good indication that you want to move your VPS to another physical host.

The solution was to move the VM to another physical computer in Amazon’s data center – obviously Amazon doesn’t have that feature in their management console, but there are some things that you can do. The easiest solution is to create a new AMI from your current running instance and then create a new instance out of that – the resulting instance will be identical to the original one, albeit with a different IP addresses. This will require stopping your current instance for a lengthy period of time – depending on the size of the storage they use (which needs to be copied).

In my case, it took about an hour to duplicate the 80 GB main storage device. It is recommended to stop the instance manually before you create the new image, so that after the image is created and before you start the new instance and fix the IP in DNS or using Elastic IP, users won’t cause data changes in your old instance – which will then be lost.

Enhanced by Zemanta

Leave a Reply