96MB Low End VPS Review Part V – CheapVPS (KVM)

Personally, I am not exactly a fan of KVM and has never had one before. After all, what is the great part of KVM when both OpenVZ (which is cheap) and Xen (which is sort of dedicated) are already in place?

However, this post on LowEndBox.com has made me curious about taking a look at the KVM boxes, and since the opportunity has presented itself (who does not like free stuff?), I decided to give it a try.

Basically you get the following specifications:

image

The prices are not exactly cheap, since 1 GBP = 1.6USD approximately, so even prepay a year means you will have to pay 160USD, which is more expensive than any of the VPS that I have ever had!

image

 

Provision

It could be due to the fact that they were still in Beta stage when I tested it out, however the provision was completely manual and it literally took them 5 days (request submitted on Apr 15, received VPS on Apr 20). However they have been very professional every time I asked about the status of the VPS set up and has even offered me a few days more of extension to express their apologies. Although they did not managed to fulfill all the promises they made (such as “your VPS will be provisioned by the end of day today”), quite frankly speaking, it was way more than what I was expecting as a customer who did not pay for the service.

 

Website and Control Panel

One of the biggest thing I have noticed about them is the fact that they managed to integrate WHCMS with Kayako, one of my favorite customer relationship management software and used by many big websites such as WebhostingTalk.com. Not only the interface is a lot “cleaner” than the ticket system in WHCMS, it also gives better interaction and better management in the tickets.

image

 

Control Panel is the standard SolusVM, which is boring at the first look:

SNAGHTML340ff8

But wait, they have a lot of customizations, as shown in the screenshot below, you can manually turn on/off APIC, ACPI, VNC and PAE, even change the boot order of the VPS, although I am not sure what exactly the boot order does, I can only assume the VPS would have the installation discs mounted as CDs during the OS reload, and booting directly through hard disk will save some boot time:

image

Other than that, it is just the standard SolusVM interface:

image

It actually got me excited for a second when I saw this as I thought instant rDNS may be possible in this case:

image

 

Only ended in a bit of disappointment:

image

Both Quick Backup and Central Backup features are not usable, both gave me the following information when I click Start, so I guess SolusVM backup is not exactly ready for KVM:

image

Overall, although I can see some effort on customizing the control panel, it is unfortunately still far from complete.

THE Box

Nothing is more important for buying a VPS than, well, the box. After all, that is what you are paying for. I have heard a lot good things about KVM before (at least a lot of claims to say it is better than OpenVZ for many reasons).

First, by default, your “root” login is not root, and anything with root privilege has to be done using sudo (in Ubuntu), which, unless you would prefer to create like 20 different alias, can be quite troublesome.

The first hardware I checked was the RAM and quite frankly speaking, I was shocked to see the RAM usage on an almost empty box when I ran free –m:

     total       used       free     shared    buffers     cached
Mem:           495        489          6          0         20        376
-/+ buffers/cache:         91        403
Swap:          715          0        715

Yes, basically the VPS box is using almost all its dedicated RAM although nothing is running! Correction: As David has suggested below, as well as fanovpn used to post a comment here which was unfortunately lost during the previous disaster, the actual RAM usage in this case is 91MB, which is pretty reasonable for a LNMP stack.

I then tried to run top to look into this further, and it seems there are lot’s of “sleeping” processes, which is far from satisfactory:

top - 00:34:35 up 9 days, 12:52,  1 user,  load average: 0.00, 0.03, 0.26
Tasks: 124 total,   1 running, 123 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.1%us,  0.1%sy,  0.0%ni, 99.9%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:    507684k total,   501388k used,     6296k free,    21320k buffers
Swap:   733180k total,      696k used,   732484k free,   385940k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
    1 root      20   0  2868 1412 1008 S    0  0.3   0:00.68 init
    2 root      20   0     0    0    0 S    0  0.0   0:00.00 kthreadd
    3 root      20   0     0    0    0 S    0  0.0   0:02.19 ksoftirqd/0
    4 root      RT   0     0    0    0 S    0  0.0   0:01.28 migration/0
    5 root      RT   0     0    0    0 S    0  0.0   0:00.00 watchdog/0
    6 root      RT   0     0    0    0 S    0  0.0   0:01.32 migration/1
    7 root      20   0     0    0    0 S    0  0.0   0:01.11 ksoftirqd/1
    8 root      RT   0     0    0    0 S    0  0.0   0:00.00 watchdog/1
    9 root      RT   0     0    0    0 S    0  0.0   0:01.26 migration/2
   10 root      20   0     0    0    0 S    0  0.0   0:00.26 ksoftirqd/2
   11 root      RT   0     0    0    0 S    0  0.0   0:00.00 watchdog/2
   12 root      RT   0     0    0    0 S    0  0.0   0:01.22 migration/3
   13 root      20   0     0    0    0 S    0  0.0   0:00.19 ksoftirqd/3
   14 root      RT   0     0    0    0 S    0  0.0   0:00.00 watchdog/3
   15 root      20   0     0    0    0 S    0  0.0   0:36.54 events/0
   16 root      20   0     0    0    0 S    0  0.0   0:10.32 events/1
   17 root      20   0     0    0    0 S    0  0.0   0:02.05 events/2

 

It is understandable that there are some flaws in the VPS box due to the fact that it is still in beta stage, however having an empty box that consumes almost all the memory is definitely not something desirable.   Correction: Again, I failed to rank the top output by memory usage, unfortunately I no longer have access to the box to run top again.

There are certain great aspects of this VPS box though, one such example is the download speed that I have received from downloading the “standard” cachefly test file:

--2011-05-01 00:37:21--  http://cachefly.cachefly.net/100mb.test
Resolving cachefly.cachefly.net... 140.99.94.175
Connecting to cachefly.cachefly.net|140.99.94.175|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 104857600 (100M) [application/octet-stream]
Saving to: `100mb.test'

100%[======================================>] 104,857,600 23.5M/s   in 4.3s

2011-05-01 00:37:26 (23.5 MB/s) - `100mb.test' saved [104857600/104857600]

23.5 M/s (close to 200mbit/s) is definitely a very impressive speed.

Besides download, more importantly to a server is the upload speed. As such, here are quite a few results from obtaining the file from various other VPS that I have.

The most impressive one is the Quickweb VPS located in London, UK, which is hardly a surprise since they are the closes geographically:

--2011-05-03 10:57:26--  http://213.229.82.128/100mb.test
Connecting to 213.229.82.128:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 104857600 (100M) [application/octet-stream]
Saving to: `100mb.test'

100%[======================================>] 104,857,600 14.1M/s   in 7.2s

2011-05-03 10:57:33 (13.9 MB/s) - `100mb.test' saved [104857600/104857600]

However, don’t think it is going to be slow even across the Atlantic Ocean, here is the test result from a NixCom VPS in Montreal, QC, Canada:

--2011-05-03 11:02:40--  http://213.229.82.128/100mb.test
Connecting to 213.229.82.128:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 104857600 (100M) [application/octet-stream]
Saving to: `100mb.test.1'

100%[======================================>] 104,857,600 9.82M/s   in 12s

2011-05-03 11:02:52 (8.09 MB/s) - `100mb.test.1' saved [104857600/104857600]

And finally, even with a BuyVM VPS, which the pony himself has admitted that HE.Net has to make some improvement for trans-Atlantic communications, it still managed to score a respectable 2.10MB/s:

--2011-05-03 10:59:12--  http://213.229.82.128/100mb.test
Connecting to 213.229.82.128:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 104857600 (100M) [application/octet-stream]
Saving to: `100mb.test'

100%[======================================>] 104,857,600 2.10M/s   in 41s

2011-05-03 10:59:53 (2.47 MB/s) - `100mb.test' saved [104857600/104857600]

I really do not think I can give them anything lower than a five star in terms of the network speed, truly impressive.

However, that is not it, their hard disk write speed is just as impressive, here is the result of dd test:

 sudo 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, 12.6947 s, 84.6 MB/s

This is definitely one of the best disk write speed I have ever seen!
Finally, just to push this little beast a bit harder, I decided to give it a UnixBench test, and the result is fair for a quad-core box, although I would think it could have done better if the RAM usage problem could be fixed:

   #    #  #    #  #  #    #          #####   ######  #    #   ####   #    #
   #    #  ##   #  #   #  #           #    #  #       ##   #  #    #  #    #
   #    #  # #  #  #    ##            #####   #####   # #  #  #       ######
   #    #  #  # #  #    ##            #    #  #       #  # #  #       #    #
   #    #  #   ##  #   #  #           #    #  #       #   ##  #    #  #    #
    ####   #    #  #  #    #          #####   ######  #    #   ####   #    #

   Version 5.1.3                      Based on the Byte Magazine Unix Benchmark

   Multi-CPU version                  Version 5 revisions by Ian Smith,
                                      Sunnyvale, CA, USA
   January 13, 2011                   johantheghost at yahoo period com

1 x Dhrystone 2 using register variables  1 2 3 4 5 6 7 8 9 10

1 x Double-Precision Whetstone  1 2 3 4 5 6 7 8 9 10

1 x Execl Throughput  1 2 3

1 x File Copy 1024 bufsize 2000 maxblocks  1 2 3

1 x File Copy 256 bufsize 500 maxblocks  1 2 3

1 x File Copy 4096 bufsize 8000 maxblocks  1 2 3

1 x Pipe Throughput  1 2 3 4 5 6 7 8 9 10

1 x Pipe-based Context Switching  1 2 3 4 5 6 7 8 9 10

1 x Process Creation  1 2 3

1 x System Call Overhead  1 2 3 4 5 6 7 8 9 10

1 x Shell Scripts (1 concurrent)  1 2 3

1 x Shell Scripts (8 concurrent)  1 2 3

4 x Dhrystone 2 using register variables  1 2 3 4 5 6 7 8 9 10

4 x Double-Precision Whetstone  1 2 3 4 5 6 7 8 9 10

4 x Execl Throughput  1 2 3

4 x File Copy 1024 bufsize 2000 maxblocks  1 2 3

4 x File Copy 256 bufsize 500 maxblocks  1 2 3

4 x File Copy 4096 bufsize 8000 maxblocks  1 2 3

4 x Pipe Throughput  1 2 3 4 5 6 7 8 9 10

4 x Pipe-based Context Switching  1 2 3 4 5 6 7 8 9 10

4 x Process Creation  1 2 3

4 x System Call Overhead  1 2 3 4 5 6 7 8 9 10

4 x Shell Scripts (1 concurrent)  1 2 3

4 x Shell Scripts (8 concurrent)  1 2 3

========================================================================
   BYTE UNIX Benchmarks (Version 5.1.3)

   System: ubuntu: GNU/Linux
   OS: GNU/Linux -- 2.6.35-22-generic-pae -- #35-Ubuntu SMP Sat Oct 16 22:16:51                                                                                                  UTC 2010
   Machine: i686 (unknown)
   Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8")
   CPU 0: QEMU Virtual CPU version 0.9.1 (4987.6 bogomips)
          x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET
   CPU 1: QEMU Virtual CPU version 0.9.1 (4987.6 bogomips)
          x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET
   CPU 2: QEMU Virtual CPU version 0.9.1 (4987.6 bogomips)
          x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET
   CPU 3: QEMU Virtual CPU version 0.9.1 (4987.6 bogomips)
          x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET
   00:40:51 up 9 days, 12:58,  1 user,  load average: 0.04, 0.05, 0.18; runlevel                                                                                                  2

------------------------------------------------------------------------
Benchmark Run: Sun May 01 2011 00:40:51 - 01:08:58
4 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables       12363644.8 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     2370.0 MWIPS (10.1 s, 7 samples)
Execl Throughput                                757.6 lps   (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        560615.3 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          162143.6 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        823847.6 KBps  (30.0 s, 2 samples)
Pipe Throughput                             1083870.5 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                  94216.5 lps   (10.0 s, 7 samples)
Process Creation                               1461.1 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   2078.3 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                    433.3 lpm   (60.1 s, 2 samples)
System Call Overhead                        1716148.5 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   12363644.8   1059.4
Double-Precision Whetstone                       55.0       2370.0    430.9
Execl Throughput                                 43.0        757.6    176.2
File Copy 1024 bufsize 2000 maxblocks          3960.0     560615.3   1415.7
File Copy 256 bufsize 500 maxblocks            1655.0     162143.6    979.7
File Copy 4096 bufsize 8000 maxblocks          5800.0     823847.6   1420.4
Pipe Throughput                               12440.0    1083870.5    871.3
Pipe-based Context Switching                   4000.0      94216.5    235.5
Process Creation                                126.0       1461.1    116.0
Shell Scripts (1 concurrent)                     42.4       2078.3    490.2
Shell Scripts (8 concurrent)                      6.0        433.3    722.2
System Call Overhead                          15000.0    1716148.5   1144.1
                                                                   ========
System Benchmarks Index Score                                         582.5

------------------------------------------------------------------------
Benchmark Run: Sun May 01 2011 01:08:58 - 01:37:21
4 CPUs in system; running 4 parallel copies of tests

Dhrystone 2 using register variables       49360561.4 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     9235.2 MWIPS (10.2 s, 7 samples)
Execl Throughput                               1812.9 lps   (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        274203.1 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           74583.6 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        737816.5 KBps  (30.0 s, 2 samples)
Pipe Throughput                             4244615.0 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 303130.7 lps   (10.0 s, 7 samples)
Process Creation                               2341.9 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   3309.1 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                    426.7 lpm   (60.3 s, 2 samples)
System Call Overhead                        2488278.1 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   49360561.4   4229.7
Double-Precision Whetstone                       55.0       9235.2   1679.1
Execl Throughput                                 43.0       1812.9    421.6
File Copy 1024 bufsize 2000 maxblocks          3960.0     274203.1    692.4
File Copy 256 bufsize 500 maxblocks            1655.0      74583.6    450.7
File Copy 4096 bufsize 8000 maxblocks          5800.0     737816.5   1272.1
Pipe Throughput                               12440.0    4244615.0   3412.1
Pipe-based Context Switching                   4000.0     303130.7    757.8
Process Creation                                126.0       2341.9    185.9
Shell Scripts (1 concurrent)                     42.4       3309.1    780.4
Shell Scripts (8 concurrent)                      6.0        426.7    711.2
System Call Overhead                          15000.0    2488278.1   1658.9
                                                                   ========
System Benchmarks Index Score                                         947.9

 

 

Miscellaneous

An important reason why KVM is a better virtualization option compared to OpenVZ is the fact that it is a full virtualization, i.e., each VPS will have it’s own kernel, which makes getting the latest version of Ubuntu so much easier. Simply run

apt-get dist-upgrade

reboot the box and vola, my Ubuntu 10.04 installation instantly becomes:

Welcome to Ubuntu 11.04 (GNU/Linux 2.6.38-8-generic-pae i686)

 

Conclusion

A beta product is, well, a beta product, it will have some problems, such as long set up waiting time and the ghosts that are using RAM heavily. However for the case of CheapVPS, the beta product has many impressive aspects, the network speed is first-class, so is the disk I/O. Also, CheapVPS always have a listening ear and always like to know the problems, which is something that many low-end VPS providers are lack of. Therefore, although it may be an overkill for hosting some low-traffic website, I would definitely recommend people to start considering it for some mission-critical tasks once CheapVPS could resolve the minor kinks in their system.

6 thoughts on “96MB Low End VPS Review Part V – CheapVPS (KVM)”

  1. Pingback: 96MB Low End VPS Review Part X – QualityServers - 96MB.com-Blog running on a 96MB RAM VPS

  2. What you’re seeing on “free -m” and “top” is typical for a physical Linux box.

    Linux uses free ram for caches to speed up disk I/O. What you actually need to look at is the third line of output from “free -m” which adjusts for caches/buffers and tells you how much memory is really available. That line begins with “-/+ buffers/cache:”. In this case, it says 91 MB is in use and 403 MB is available.

    If you look at the output from top, all those processes which have 0 in the memory columns “VIRT RES SHR” are internal processes in the kernel. These do things like handle post processing of hardware interrupts, writes (flushes) of dirty cache buffers to disk, and various housekeeping tasks for Linux. Many of them are duplicated for each cpu core. I believe that what you’re seeing is typical for an actual physical or fully virtual server that is idle.

    OpenVZ is a different type of virtualization similar to Solaris zones or FreeBSD jails. It’s very different from having actual Virtual Machines. Wikipedia has more info on Operating system-level virtualization

    — David

    • @David, thanks for pointing those out, I was at the early stage of learning VPS back then (actually not so long ago) so I made a few errors here and there, I should have updated the post to reflect those corrections, thanks a lot once again for pointing them out.

  3. Pingback: Limitations of 96MB.com Low End VPS Reviews | | 96MB.com96MB.com

  4. Pingback: CheapVPS – £3 128MB KVM VPS in UK – Low End Box

  5. Pingback: CheapVPS – £3 128MB KVM VPS in UK

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.