IO Performance of VPS "cloud servers".

HaltAndCatchFire

Senior Member
Joined
Jul 14, 2005
Messages
527
Reaction score
0
Location
The Dark Web
At the rate which hosting providers are offering these "VPS" or cloud hosting I was wondering what the performance was like for other users.

I was struggling allot with my afrihost cloud bronze server, getting http 500 errors on my small blog site all the time. I had configured a lesser spec'ed, but similarly configured, local VM of my own and it was going along swimmingly no issues, little load cpu wise.

So I dove into the config and made some massive optimizations. The one thing that worked the best was using csf (http://configserver.com/cp/csf.html) to filter out and block/drop unwanted traffic. when I did some netstat's I would see so much traffic from other hosts it was insane.

But after all this and caching and mysql optimizations, I still receive way to much 500 errors and timeouts and extremely high load, all of this with no special services running only LAMP serving up a small wordpress instance and my own private mail small amounts of mail 2 mailboxes.

I thought it was only my configuration that was so messed up that this was causing issues, but when a colleague of mine pointed out that he was experiencing similar issues on his vps I started to smell a rat.

So I hit google and saw that disk contention and I/O performance is a major factor. A site recommended a simple test:
dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync

And gave some results from overseas providers: http://www.lowendtalk.com/discussion/42/test-the-disk-io-of-your-vps

Typically averaging 60 odd MB/s. Upper ranges hit 200MB/s.

I did the same test on my africloud bronze and got

# dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync
16384+0 records in
16384+0 records out
1073741824 bytes (1.1 GB) copied, 92.916 s, 11.6 MB/s

My own small VMWare image running on my primary pc normal desktop not a server.
dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync
16384+0 records in
16384+0 records out
1073741824 bytes (1,1 GB) copied, 16,8646 s, 63,7 MB/s

So I am wondering if this could be what is up with the performance of the system. If this is happening I think ISP's and hosting providers should provide a contention ratio on i/o's

If anyone with a linux based vps could post their results here we can maybe see what is up.
 
from an OpenVZ server in france:

16384+0 records in
16384+0 records out
1073741824 bytes (1.1 GB) copied, 36.6849 s, 29.3 MB/s
 
First off, even using csf will help kill performance, I'd HIGHLY recommend putting your site behind cloudflare.com and use their block IP services to block traffic at the DNS level before it even hits your server. It also has the added benefit of being a CDN for your entire site and will cut down on requests to your server by about half. It also detects malicious people automatically for you and hits them with a captcha response they have to complete before going into your site (which most don't)

Any-who

Your performance killer on this instance is MySQL. Normally you wouldn't need high disk-IO at all, but on a cloud/VPS host (FYI, Afrihost Bronze is a VPS, not a Cloud, cloud normally has better IO throughput due to it's distributed nature), MySQL will gobble up as much as it can, especially on high volume.

However, you're saying it's 1 wordpress site? With a mail server of 2 mail boxes?

First off, make sure you didn't open up your server to be a free mail relay for spammers....
Secondly, put that **** behind Cloudflare so they can automatically block out all the *******s
Third, maybe consider splitting your DB / Mail and WWW into 3 separate servers, or at least your mail from your WWW/DB server
 
Cool thanks for the comments AcidRaZor, I checked out cloudflare a long time ago will revisit it.

Before I installed csf I had more issues than i have now. I can understand that it eats cycles as it has to inspect packets and such. I did also notice that afrihost are blocking packets on non standard ports before they reach my instance, obviously not comparing it to cloudflare just saying that they also block on dns level, which may also help.

I should clarify that my mail server is only pop and imap not smtp. So that also rules out an open relay.

Regarding the splitting obviously a better option but at the low volumes of traffic, considering this is a personal blog and mostly a testing ground for my development and such, I can't really justify spending more money on getting more instances.

Because it's a personal site I can hack away at configs and try to optimize where I can and learn in the process.

Thanks again for the input.
 
Okay then my recommendation would definitely be Cloudflare. It takes 2 seconds to sign up/add your site etc. And you can add a cache of 5 days or so so even less hits occur.

csf is nice and all, but I've literally blocked tens-of-thousands of IP's and my server still suffered. Switch to Cloudflare, never had to worry, and if I do find an offending IP, I just add it to my block list.

Cloudflare is FREE btw, so try that option first before trying anything else :p
 
Glad Clouflare is becoming so popular. Been promoting it for such a long time here. Its such a valuable service. Ive seen a Wordpress website with hardly any traffic pull down a 16 core CPU server because of bad plugins and themese. Ive also seen a Wordpress website handle massive amounts of traffic without struggling. A lot comes down to how you set it up, what plugins and themes you use.
 
A "dd " tests sequential write speeds, which are least used on the server. It would be best to use ioping to find the real world performance :) We can then check if the storage performance is adequate of if there is an issue.

CentOS 5/6:

Code:
wget https://ioping.googlecode.com/files/ioping-0.6.tar.gz
tar zxvf ioping-0.6.tar.gz
cd ioping-0.6
make
make install
ioping -c 10 /
ioping -R -c 10 /

If you get the error make: cc: Command not found then run "yum install gcc-c++"
 
Last edited:
Hi ASS_SAZiN,

Unfortunately this is often the case as most providers spin up far too many VPS's clients on a single hypervisor node that often only has a 4 disk SATA RAID10 setup for storage. At times some VM's will use large amounts of disk IOPs lowering the overall speed for everyone on that node.

You could request your provider move your VPS onto another node and hope the disk IO improves.
 
Here are results from a budget US-based VPS I have:

Code:
16384+0 records in
16384+0 records out
1073741824 bytes (1.1 GB) copied, 14.526 seconds, 73.9 MB/s

Code:
16384+0 records in
16384+0 records out
1073741824 bytes (1.1 GB) copied, 13.754 seconds, 78.1 MB/s

Code:
16384+0 records in
16384+0 records out
1073741824 bytes (1.1 GB) copied, 15.4348 seconds, 69.6 MB/s
 
Code:
root@mc:~# dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync
16384+0 records in
16384+0 records out
1073741824 bytes (1.1 GB) copied, 53.996 s, 19.9 MB/s

Code:
root@mc:~# dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync
16384+0 records in
16384+0 records out
1073741824 bytes (1.1 GB) copied, 48.6784 s, 22.1 MB/s

Shocking :( Anyone at Afrihost can tell me how their cloud vps`s perform?

Hosting at vps.co.za ....
 
I bought a VPS at Afrihost and major difference in performance!

Code:
root@na4:~# dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync
16384+0 records in
16384+0 records out
1073741824 bytes (1,1 GB) copied, 16,3426 s, 65,7 MB/s
 
$ dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync
16384+0 records in
16384+0 records out
1073741824 bytes (1.1 GB) copied, 4.0943 s, 262 MB/s

This is on a VPS that I personally host and configure for customers, hosted overseas though.
 
XEN
[root@ns1 ~]# dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync
16384+0 records in
16384+0 records out
1073741824 bytes (1.1 GB) copied, 10.6717 seconds, 101 MB/s

OpenVZ
[root@ns1 ~]# dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync
16384+0 records in
16384+0 records out
1073741824 bytes (1.1 GB) copied, 22.6819 seconds, 47.3 MB/s
 
Last edited:
gotsta love SSD

Believe it or not, that is on spinning disks, in RAID1

I keep my contention ratio extremely low though. RAM is 100% guaranteed, so are 2CPUs ( 2 extra shared at 2:1 ), and disk IO is 4:1
 
Believe it or not, that is on spinning disks, in RAID1

I keep my contention ratio extremely low though. RAM is 100% guaranteed, so are 2CPUs ( 2 extra shared at 2:1 ), and disk IO is 4:1

Seriously? wow. Imagine if those babies were SSD!
 
Code:
root@mc:~# dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync
16384+0 records in
16384+0 records out
1073741824 bytes (1.1 GB) copied, 53.996 s, 19.9 MB/s

Code:
root@mc:~# dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync
16384+0 records in
16384+0 records out
1073741824 bytes (1.1 GB) copied, 48.6784 s, 22.1 MB/s

Shocking :( Anyone at Afrihost can tell me how their cloud vps`s perform?

Hosting at vps.co.za ....

This was due to a temporary issue on one of our SAN networks. Additional resources are being added this weekend to prevent similar occurrences. I'll post an update with our new I/O speeds shortly.
 
Top
Sign up to the MyBroadband newsletter
X