96MB Low End VPS Review Part 44 – IPXCore

I have to say that that although there are many providers which claimed to provide VPS with only 96MB of RAM, rarely any of them actually do provide a VPS for which 96MB is all you have as memory resources. Most of the OpenVZ providers actually provide at least another 96MB of burstable RAM, which means you are essentially running on a VPS with 192MB of RAM (although you can not do that all the time), which is really what all is needed to run an LNMP stack, plus many other basic functionalities. For Xen HVM providers, you even have the ability to add your own swap space, making the swap space to be as large as you like. That is why when IPXCore start to offer a true 96MB VPS (i.e. all you have is 96MB of memory and no burstable/swap RAM), it immediately turns out to be something rather interesting and I have decided to take one up myself to take a look.

Basic Information and Set Up

As per the post on LowEndBox.com, here is what you get for 1.25 USD per month:

image

One really good part that I have found about this deal is it actually allows monthly payment. Sometimes with the ultra-low end VPS like this, people just want to sign up for one and “play around” a little without knowing if a VPS with such a low configuration is going to work out for them, although a provider definitely have to take more overhead since they will have Paypal eating up a share of the payment every month, it is definitely something that would attract customers who won’t be able to commit for a full year of payment ahead.

The sign up page is using secured HTTP connection and although when I signed up, the price was 1.25USD per month, it has definitely gone up recently (EDIT: I have just noticed this post on WHT before I publish this blog post, it seems that the TinyVPS plan right now comes with 96MB of burstable RAM as well, which could be one of the reasons for a higher price. And they are currently offering 15% off recurring discount, making the price to be 1.69USD per month, considering you get 96MB of burstable RAM for an extra 44 cents per month, it is actually a much better deal especially if you need more than just 96MB.)

image

As you can see, there is actually no other payment cycle available, which means you can not commit for a year even if you want to! I guess IPXCore is really trying to make sure that you stay with them really if you want to.

Also, note that Step 1 is skipped as well, so that I do not have to input a domain name in there, which is great. Additional IP address cost 3 USD per month, which is more than the cost of 2 VPS when I originally signed up and is the cost of one and a half VPS using the price today, I guess they really want to make sure you do not put more than 1 IP address on the same box then. If you need 2 IP address, you can always proxy/VPN the VPS together although I do not think there is internal LAN address available.

Quite a few OS templates are made available during sign up process:

image

image

Although it is a little disappointing that they do not have any minimal templates for Ubuntu or Debian. Yes, I understand that after a fresh installation, Debian (particularly Debian 6) uses quite little memory, but I still hope that I could get a template that is trimmed down as much as possible.

Three payment methods are available, Google Checkout, Alert Pay and of course, Paypal, you can just make a one time payment and then log in every month to pay again every month as the invoice arrives or you can just subscribe to the payment and have Paypal to take care of things for you.

The creation of the VPS was instant and although I signed it up during Christmas Eve at 11:20pm (now you guys know what I did for Christmas), I received the emails with my VPS login information at the same time I have received the payment notification from Paypal. Unlike many other providers, I actually see 2 emails coming from them containing similar pieces of information. The first one was sent by Virtualizor from [email protected], which I guess is the email address of one of the support stuff, and contains something like this:

image

I was not sure what the URLs were for and it turns out to be the login URL to the Virtulizor control panel. One interesting detail was that when I tried to login to the secure HTTP interface, I actually got a certificate warning, which was due to the security certificate was issued to diamond.ipxcore.com rather than the IP address. I am curious as to why IPXcore would prefer to give the IP address in the email rather than the actual subdomain.

The second email looks more like the type of emails that I have received from almost every single VPS provider:

image

As you can see, the information contained there is pretty much the same as the first email, which makes the second email (or the first one) rather unnecessary.

Although there is a control panel for the VPS, I almost never logged into that. Besides the IP address is much harder for me to remember than the actual subdomain, the fact that the control panel in the client area is just as good is definitely a key reason.

Once logged into the Client Area from their home page and click on My Services, here is what you get to see:

image

Click on View Details tab and you are being presented with the following page:

image

As you can see, this is actually a very detailed control panel, and contain almost everything of what I need with SolusVM, plus a few bonuses. The only part that I could not find and I wish to have is instant rDNS and centralized backup, however many of the providers using SolusVM are not turning them on anyways.

Some of the interesting functionalities that  I have found including the ability to run something similar to the output of top when clicking on the Processes button:

image

Or see the actual services running when click on the Services button:

image

However, not all features are turned on and one such example is the VNC/emergency recovery console:

image

This is something that I am not sure how to deal with since if I accidentally configured my Iptable to block the SSH traffic, the only way I can gain access to the VPS seems to be reinstalling the OS template, which is something that I prefer to do it as few times as possible.

The OS templates available for reinstalling is pretty much the same as the templates available on the sign up page, and unfortunately again, there is no minimal template for Debian and Ubuntu (and CentOS for that matter as well). I was very tempted to try to get HostInABox running on the VPS with only 96MB of RAM and nothing else, but I guess I will hold on to the thoughts.

image

If you really really need to take a look at the control panel, which is something I probably have logged in less than 5 times in the past 3 months (and once just for writing this review), here is what you will see:

image

Click on the arrow in manage and you see a screen that is very similar to what is in the client area:

image

However, a few nice features that I was hoping to see in the client area now works in the control panel, for example, if you click on the SSH button, you actually see the emergency recovery console popping up:

image

Want to create a backup of the VPS? Simply click on the Backup button and you are done:

image

And if you are looking to install control panels such a CPanel or Kloxo, they can be done easily with the click of a button in Control Panel as well:

image

Although I highly doubt if anyone would be able to get CPanel up and running on this VPS.

There is also a quite comprehensive performance monitoring functionalities available in the control panel, such as monitoring CPU, RAM and disk usage:

image

The interesting bit is the OS installation screen, which actually consists of different types/classifications according to the distribution:

image

Note that every time the OS is reloaded, you are required to type in the new root password.

Test on the VPS

As mentioned above, the VPS contains 96MB of RAM, 2GB of disk space(and received another 2GB for free after I was trying to install an LNMP stack and was unsuccessful due to both memory and hard drive space restrictions), and it is located in Phoenix, AZ in US, I have, as usual, used Debian 6 OS template for testing purposes.

After a fresh reload of OS, the VPS took about 18 MB of RAM, which is almost the same as the “standard” RAM usage for a Debian 6 OS template:

 free -m
             total       used       free     shared    buffers     cached
Mem:            96         18         77          0          0          0
-/+ buffers/cache:         18         77
Swap:            0          0          0

Top output showing the processes running:

top - 23:14:02 up 12 min,  1 user,  load average: 0.00, 0.00, 0.00
Tasks:  15 total,   2 running,  13 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:     98304k total,    18892k used,    79412k free,        0k buffers
Swap:        0k total,        0k used,        0k free,        0k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 1691 root      18   0  8756 3120 2468 R  0.0  3.2   0:00.22 sshd
 1419 root      15   0  5132 2428 1180 S  0.0  2.5   0:00.00 apache2
 1420 www-data  15   0  5272 2380 1084 S  0.0  2.4   0:00.00 apache2
 1655 www-data  15   0  5264 2352 1060 S  0.0  2.4   0:00.00 apache2
 1693 root      15   0  2956 1644 1316 S  0.0  1.7   0:00.01 bash
 1622 root      18   0  9988 1540  500 S  0.0  1.6   0:00.00 sendmail-mta
 1721 root      15   0  2324 1060  872 R  0.0  1.1   0:00.00 top
 1637 root      18   0  5484  992  600 S  0.0  1.0   0:00.00 sshd
 1441 root      18   0  2284  844  660 S  0.0  0.9   0:00.00 cron
 1590 root      25   0  2388  836  668 S  0.0  0.9   0:00.00 xinetd
 1389 root      18   0  8664  792  448 S  0.0  0.8   0:00.00 saslauthd
 1409 root      18   0  1888  780  648 S  0.0  0.8   0:00.00 anacron
    1 root      15   0  2024  676  584 S  0.0  0.7   0:00.21 init
 1405 root      15   0  1732  632  504 S  0.0  0.6   0:00.00 syslogd
 1391 root      18   0  8664  508  164 S  0.0  0.5   0:00.00 saslauthd

And the corresponding htop output:

image

Approximately 444MB of hard drive space was taken after the OS template was reloaded:

 df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/simfs            4.0G  444M  3.6G  11% /
tmpfs                  48M     0   48M   0% /lib/init/rw
tmpfs                  48M     0   48M   0% /dev/shm

And the Inodes is set to a pretty nice value of 4000000, which I am not sure was due to the actual hard drive capacity that I have (4GB):

 df -i
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/simfs           4000000   26162 3973838    1% /
tmpfs                  12288       4   12284    1% /lib/init/rw
tmpfs                  12288       1   12287    1% /dev/shm

Unfortunately I have had a bit of hard time trying to compile the LNMP stack from source due to the limited amount of memory that I have. Although IPXcore has been really kind and gave me 256MB of RAM for free temporarily to compile the programs, I think it is just unfair to include the memory and hard drive space usage after the LNMP stack was installed here.

However, after the LNMP stack was installed, about 2GB of hard drive space was used, which is pretty good:

df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/simfs            4.0G  2.0G  2.1G  50% /
tmpfs                  48M     0   48M   0% /lib/init/rw
tmpfs                  48M     0   48M   0% /dev/shm

And 3% of iNodes were used as well:

 df -i
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/simfs           4000000   90831 3909169    3% /
tmpfs                  12288       3   12285    1% /lib/init/rw
tmpfs                  12288       1   12287    1% /dev/shm

Uptime shows the VPS is mostly unused:

uptime
 23:34:13 up 11:01,  2 users,  load average: 0.00, 0.00, 0.00

Which is again showed in the output of vmstat:

vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
 0  0      0  92508      0      0    0    0   127   399    0  318  2  2 96  0

Unlike the normal OpenVZ set up, the beancounters output is actually pretty weird:

cat /proc/user_beancounters
Version: 2.5
       uid  resource                     held              maxheld              barrier                limit              failcnt
      225:  kmemsize                  1392136              3902167           2147483647           2147483647                    0
            lockedpages                     0                  427               999999               999999                    0
            privvmpages                  1461                63588                24576                24576                90272
            shmpages                        0                 8332                24576                24576                    0
            dummy                           0                    0                    0                    0                    0
            numproc                        10                   35                32567                32567                    0
            physpages                     755                36148                    0           2147483647                    0
            vmguarpages                     0                    0                24576                24576                    0
            oomguarpages                  755                36148                24576                24576                    0
            numtcpsock                      2                   60              7999992              7999992                    0
            numflock                        3                   23               999999               999999                    0
            numpty                          1                    3                  255                  255                    0
            numsiginfo                      0                   24                 1024                 1024                    0
            tcpsndbuf                   37336              2300792            214748160            396774400                    0
            tcprcvbuf                   32768               983040            214748160            396774400                    0
            othersockbuf                 4656               431480            214748160            396774400                    0
            dgramrcvbuf                     0                26080            214748160            396774400                    0
            numothersock                    6                   90              7999992              7999992                    0
            dcachesize                      0                    0           2147483647           2147483647                    0
            numfile                       225                 1578             23999976             23999976                    0
            dummy                           0                    0                    0                    0                    0
            dummy                           0                    0                    0                    0                    0
            dummy                           0                    0                    0                    0                    0
            numiptent                      24                   24               999999               999999    
                0

As you can see, although the held and maxheld values are more or less normal, barrier and limit seems to set to pretty outlandish values. Most interestingly, the failcnt value for privvmpages, which should always be 0, is actually having the value of more than 90000.

Since the vzfree output depends on the beancounters output, I have included them here:

vzfree
             Total     Used     Free
Kernel:   2048.00M    1.74M 2046.26M
Allocate:   96.00M   47.59M   48.41M (96M Guaranteed)
Commit:     96.00M   45.65M   50.35M (92.3% of Allocated)
Swap:                 0.00M          (0.0% of Committed)

As you can see, there is no sign of overselling involved.

Half a CPU core is advertised for the VPS, and indeed that means for a 3GHz CPU core, you will only be able to get 1.5GHz:

 cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 15
model           : 4
model name      :                   Intel(R) Xeon(TM) CPU 3.00GHz
stepping        : 3
cpu MHz         : 1500.120
cache size      : 2048 KB
physical id     : 0
siblings        : 2
core id         : 0
cpu cores       : 1
apicid          : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 5
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov                                                                                                  pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall lm constant_tsc pn                                                                                                 i monitor ds_cpl cid cx16 xtpr
bogomips        : 6000.48
clflush size    : 64
cache_alignment : 128
address sizes   : 36 bits physical, 48 bits virtual
power management:

And the meminfo output:

cat /proc/meminfo
MemTotal:        98304 kB
MemFree:         49632 kB
Buffers:             0 kB
Cached:              0 kB
SwapCached:          0 kB
Active:              0 kB
Inactive:            0 kB
HighTotal:           0 kB
HighFree:            0 kB
LowTotal:        98304 kB
LowFree:         49632 kB
SwapTotal:           0 kB
SwapFree:            0 kB
Dirty:            2600 kB
Writeback:           0 kB
AnonPages:           0 kB
Mapped:              0 kB
Slab:                0 kB
PageTables:          0 kB
NFS_Unstable:        0 kB
Bounce:              0 kB
CommitLimit:         0 kB
Committed_AS:        0 kB
VmallocTotal:        0 kB
VmallocUsed:         0 kB
VmallocChunk:        0 kB
HugePages_Total:     0
HugePages_Free:      0
HugePages_Rsvd:      0
Hugepagesize:     2048 kB

And time sync as well:

time sync
    0.23s real     0.00s user     0.00s system

The disk I/O is not really impressive to be honest, with only slightly above 30MB/s of write speed, you can barely run anything useful:

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, 31.8149 s, 33.7 MB/s

Testing again basically showed similar results:

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, 32.9984 s, 32.5 MB/s

IOping results are pretty steady, however the values are not good, which means that the performance is at least pretty consistent:

ioping -c 10 .
4096 bytes from . (simfs /dev/simfs): request=1 time=15.4 ms
4096 bytes from . (simfs /dev/simfs): request=2 time=12.1 ms
4096 bytes from . (simfs /dev/simfs): request=3 time=27.1 ms
4096 bytes from . (simfs /dev/simfs): request=4 time=14.6 ms
4096 bytes from . (simfs /dev/simfs): request=5 time=2.4 ms
4096 bytes from . (simfs /dev/simfs): request=6 time=13.3 ms
4096 bytes from . (simfs /dev/simfs): request=7 time=0.4 ms
4096 bytes from . (simfs /dev/simfs): request=8 time=14.5 ms
4096 bytes from . (simfs /dev/simfs): request=9 time=0.4 ms
4096 bytes from . (simfs /dev/simfs): request=10 time=12.0 ms

--- . (simfs /dev/simfs) ioping statistics ---
10 requests completed in 9122.7 ms, 89 iops, 0.3 mb/s
min/avg/max/mdev = 0.4/11.2/27.1/7.8 ms

As you can see, the round trip time is normally well above 1ms, which seems to be what I normally see.

Testing again showed similar results:

ioping -c 10 .
4096 bytes from . (simfs /dev/simfs): request=1 time=13.8 ms
4096 bytes from . (simfs /dev/simfs): request=2 time=10.8 ms
4096 bytes from . (simfs /dev/simfs): request=3 time=10.1 ms
4096 bytes from . (simfs /dev/simfs): request=4 time=62.7 ms
4096 bytes from . (simfs /dev/simfs): request=5 time=10.2 ms
4096 bytes from . (simfs /dev/simfs): request=6 time=0.4 ms
4096 bytes from . (simfs /dev/simfs): request=7 time=0.4 ms
4096 bytes from . (simfs /dev/simfs): request=8 time=16.4 ms
4096 bytes from . (simfs /dev/simfs): request=9 time=8.0 ms
4096 bytes from . (simfs /dev/simfs): request=10 time=12.5 ms

--- . (simfs /dev/simfs) ioping statistics ---
10 requests completed in 9156.5 ms, 69 iops, 0.3 mb/s
min/avg/max/mdev = 0.4/14.5/62.7/16.8 ms

The network seems to be OK, although by no means impressive, I was be able to clock more than 2MB/s in the Cachefly download test:

 wget cachefly.cachefly.net/100mb.test -O /dev/null
--2012-02-22 03:01:06--  http://cachefly.cachefly.net/100mb.test
Resolving cachefly.cachefly.net... 205.234.175.175
Connecting to cachefly.cachefly.net|205.234.175.175|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 104857600 (100M) [application/octet-stream]
Saving to: `/dev/null'

100%[======================================>] 104,857,600 2.25M/s   in 43s

2012-02-22 03:01:49 (2.31 MB/s) - `/dev/null' saved [104857600/104857600]

Testing again actually showed slightly better results:

wget cachefly.cachefly.net/100mb.test -O /dev/null
--2012-02-22 03:15:03--  http://cachefly.cachefly.net/100mb.test
Resolving cachefly.cachefly.net... 205.234.175.175
Connecting to cachefly.cachefly.net|205.234.175.175|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 104857600 (100M) [application/octet-stream]
Saving to: `/dev/null'

100%[======================================>] 104,857,600 2.28M/s   in 43s

2012-02-22 03:15:46 (2.34 MB/s) - `/dev/null' saved [104857600/104857600]

Compare to download speed, the upload speed is far less impressive:

The first upload test is from a test VPS with BuffaloVPS in Chicago, IL:

wget 69.53.***.***/100mb.test -O /dev/null
--2012-02-21 14:07:44--  http://69.53.223.200/100mb.test
Connecting to 69.53.223.200:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 104857600 (100M) [application/octet-stream]
Saving to: `/dev/null'

100%[======================================>] 104,857,600 1.22M/s   in 77s

2012-02-21 14:09:01 (1.30 MB/s) - `/dev/null' saved [104857600/104857600]

The next one is with a BuyVM VPS in San Jose, CA:

 wget 69.53.***.***/100mb.test -O /dev/null
--2012-02-21 14:12:14--  http://69.53.223.200/100mb.test
Connecting to 69.53.223.200:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 104857600 (100M) [application/octet-stream]
Saving to: `/dev/null'

100%[======================================>] 104,857,600 2.19M/s   in 45s

2012-02-21 14:12:58 (2.24 MB/s) - `/dev/null' saved [104857600/104857600]

And finally, the test on a XenVZ VPS in Maidenhead, UK:

wget 69.53.***.***/100mb.test -O /dev/null
--2012-02-22 03:34:46--  http://69.53.223.200/100mb.test
Connecting to 69.53.223.200:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 104857600 (100M) [application/octet-stream]
Saving to: `/dev/null'

100%[======================================>] 104,857,600  127K/s   in 16m 48s

2012-02-22 03:51:34 (102 KB/s) - `/dev/null' saved [104857600/104857600]

As you can see, the upload speed from this VPS has never exceeded 2.5MB/s with the connection to Europe as slow as 102KB/s, which is not really something acceptable.

Finally, for the benchmarking, I have tried to run both UnixBench and Geekbench on the VPS, unfortunately, only UnixBench managed to run and GeekBench, even after I tried to shut down as many services as possible, still gave me an out of memory error:

System Information
  Platform:                  Linux x86 (32-bit)
  Compiler:                  GCC 4.1.2 20070925 (Red Hat 4.1.2-33)
  Operating System:          Linux 2.6.32-274.7.1.el5.028stab095.1 i686
  Model:                     Linux PC (Intel Xeon)
  Motherboard:               Unknown Motherboard
  Processor:                 Intel Xeon
  Processor ID:              GenuineIntel Family 15 Model 4 Stepping 3
  Logical Processors:        1
  Physical Processors:       1
  Processor Frequency:       1.50 GHz
  L1 Instruction Cache:      0.00 B
  L1 Data Cache:             0.00 B
  L2 Cache:                  2.00 MB
  L3 Cache:                  0.00 B
  Bus Frequency:             0.00 Hz
  Memory:                    2.94 GB
  Memory Type:               N/A
  SIMD:                      1
  BIOS:                      N/A
  Processor Model:                             Intel(R) Xeon(TM) CPU 3.00GHz
  Processor Cores:           1

Integer
  Blowfish
    single-threaded scalar    1983 |||||||
    multi-threaded scalar     1147 ||||
  Text Compress
    single-threaded scalar     649 ||
    multi-threaded scalar      629 ||
  Text Decompress
    single-threaded scalar     712 ||
    multi-threaded scalar      733 ||
  Image Compress
    single-threaded scalar     587 ||
    multi-threaded scalar      576 ||
  Image Decompress
    single-threaded scalar     724 ||
    multi-threaded scalar      618 ||
  Lua
    single-threaded scalar     903 |||
    multi-threaded scalar      866 |||

Floating Point
  Mandelbrot
    single-threaded scalar     560 ||
    multi-threaded scalar      553 ||
  Dot Product
    single-threaded scalar    1058 ||||
    multi-threaded scalar     1081 ||||
    single-threaded vector     809 |||
    multi-threaded vector      871 |||
  LU Decomposition
    single-threaded scalar    1031 ||||
    multi-threaded scalar     1049 ||||
  Primality Test
    single-threaded scalar     989 |||
    multi-threaded scalar      787 |||
  Sharpen Image
    single-threaded scalar    1898 |||||||
    multi-threaded scalar     1797 |||||||
  Blur Image
    single-threaded scalar    1549 ||||||
    multi-threaded scalar     1528 ||||||

Memory
  Read Sequential
    single-threaded scalar    1545 ||||||
  Write Sequential
    single-threaded scalar    1413 |||||
  Stdlib Allocate
    single-threaded scalar     716 ||
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc
Abort

Running again yielded similar results:

System Information
  Platform:                  Linux x86 (32-bit)
  Compiler:                  GCC 4.1.2 20070925 (Red Hat 4.1.2-33)
  Operating System:          Linux 2.6.32-274.7.1.el5.028stab095.1 i686
  Model:                     Linux PC (Intel Xeon)
  Motherboard:               Unknown Motherboard
  Processor:                 Intel Xeon
  Processor ID:              GenuineIntel Family 15 Model 4 Stepping 3
  Logical Processors:        1
  Physical Processors:       1
  Processor Frequency:       1.50 GHz
  L1 Instruction Cache:      0.00 B
  L1 Data Cache:             0.00 B
  L2 Cache:                  2.00 MB
  L3 Cache:                  0.00 B
  Bus Frequency:             0.00 Hz
  Memory:                    2.94 GB
  Memory Type:               N/A
  SIMD:                      1
  BIOS:                      N/A
  Processor Model:                             Intel(R) Xeon(TM) CPU 3.00GHz
  Processor Cores:           1

Integer
  Blowfish
    single-threaded scalar    1828 |||||||
    multi-threaded scalar     1038 ||||
  Text Compress
    single-threaded scalar     624 ||
    multi-threaded scalar      599 ||
  Text Decompress
    single-threaded scalar     703 ||
    multi-threaded scalar      716 ||
  Image Compress
    single-threaded scalar     586 ||
    multi-threaded scalar      577 ||
  Image Decompress
    single-threaded scalar     734 ||
    multi-threaded scalar      620 ||
  Lua
    single-threaded scalar     997 |||
    multi-threaded scalar      862 |||

Floating Point
  Mandelbrot
    single-threaded scalar     561 ||
    multi-threaded scalar      553 ||
  Dot Product
    single-threaded scalar    1059 ||||
    multi-threaded scalar     1082 ||||
    single-threaded vector     818 |||
    multi-threaded vector      868 |||
  LU Decomposition
    single-threaded scalar    1029 ||||
    multi-threaded scalar     1048 ||||
  Primality Test
    single-threaded scalar     991 |||
    multi-threaded scalar      790 |||
  Sharpen Image
    single-threaded scalar    1901 |||||||
    multi-threaded scalar     1787 |||||||
  Blur Image
    single-threaded scalar    1553 ||||||
    multi-threaded scalar     1527 ||||||

Memory
  Read Sequential
    single-threaded scalar    1523 ||||||
  Write Sequential
    single-threaded scalar    1395 |||||
  Stdlib Allocate
    single-threaded scalar     713 ||
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc
Abort

Even though the tests were not completed, as you can see from the subscores, the performance of the VPS is unlikely to be too impressive.

UnixBench actually confirmed the results from Geekbench, and perhaps for a VPS with only 96MB of RAM and half a CPU core, we really can’t expect too much:

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

   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

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

   System: *******: GNU/Linux
   OS: GNU/Linux -- 2.6.32-274.7.1.el5.028stab095.1 -- #1 SMP Mon Oct 24 20:49:24 MSD 2011
   Machine: i686 (unknown)
   Language: en_US.utf8 (charmap="ANSI_X3.4-1968", collate="ANSI_X3.4-1968")
   CPU 0: Intel(R) Xeon(TM) CPU 3.00GHz (6000.5 bogomips)
          Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET
   12:51:50 up 18 min,  2 users,  load average: 0.14, 0.03, 0.01; runlevel 2

------------------------------------------------------------------------
Benchmark Run: Sun Feb 19 2012 12:51:50 - 13:22:05
1 CPU in system; running 1 parallel copy of tests

Dhrystone 2 using register variables        3005640.9 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     1225.9 MWIPS (10.7 s, 7 samples)
Execl Throughput                               1008.3 lps   (29.6 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        120777.2 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           35911.0 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        280149.2 KBps  (30.0 s, 2 samples)
Pipe Throughput                              237153.7 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                  53424.4 lps   (10.0 s, 7 samples)
Process Creation                               3019.3 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   1467.0 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                    190.5 lpm   (60.2 s, 2 samples)
System Call Overhead                         193471.7 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0    3005640.9    257.6
Double-Precision Whetstone                       55.0       1225.9    222.9
Execl Throughput                                 43.0       1008.3    234.5
File Copy 1024 bufsize 2000 maxblocks          3960.0     120777.2    305.0
File Copy 256 bufsize 500 maxblocks            1655.0      35911.0    217.0
File Copy 4096 bufsize 8000 maxblocks          5800.0     280149.2    483.0
Pipe Throughput                               12440.0     237153.7    190.6
Pipe-based Context Switching                   4000.0      53424.4    133.6
Process Creation                                126.0       3019.3    239.6
Shell Scripts (1 concurrent)                     42.4       1467.0    346.0
Shell Scripts (8 concurrent)                      6.0        190.5    317.5
System Call Overhead                          15000.0     193471.7    129.0
                                                                   ========
System Benchmarks Index Score                                         240.4

Testing again basically shows the same results:

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

   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

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

   System: *******: GNU/Linux
   OS: GNU/Linux -- 2.6.32-274.7.1.el5.028stab095.1 -- #1 SMP Mon Oct 24 20:49:24 MSD 2011
   Machine: i686 (unknown)
   Language: en_US.utf8 (charmap="ANSI_X3.4-1968", collate="ANSI_X3.4-1968")
   CPU 0: Intel(R) Xeon(TM) CPU 3.00GHz (6000.5 bogomips)
          Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET
   13:26:51 up 53 min,  2 users,  load average: 0.04, 1.23, 1.25; runlevel 2

------------------------------------------------------------------------
Benchmark Run: Sun Feb 19 2012 13:26:51 - 13:57:05
1 CPU in system; running 1 parallel copy of tests

Dhrystone 2 using register variables        2970548.5 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     1231.6 MWIPS (10.7 s, 7 samples)
Execl Throughput                               1005.2 lps   (29.7 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        121829.5 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           35504.5 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        278184.5 KBps  (30.0 s, 2 samples)
Pipe Throughput                              238746.6 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                  53359.2 lps   (10.0 s, 7 samples)
Process Creation                               3012.4 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   1483.1 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                    190.8 lpm   (60.2 s, 2 samples)
System Call Overhead                         193200.8 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0    2970548.5    254.5
Double-Precision Whetstone                       55.0       1231.6    223.9
Execl Throughput                                 43.0       1005.2    233.8
File Copy 1024 bufsize 2000 maxblocks          3960.0     121829.5    307.7
File Copy 256 bufsize 500 maxblocks            1655.0      35504.5    214.5
File Copy 4096 bufsize 8000 maxblocks          5800.0     278184.5    479.6
Pipe Throughput                               12440.0     238746.6    191.9
Pipe-based Context Switching                   4000.0      53359.2    133.4
Process Creation                                126.0       3012.4    239.1
Shell Scripts (1 concurrent)                     42.4       1483.1    349.8
Shell Scripts (8 concurrent)                      6.0        190.8    318.1
System Call Overhead                          15000.0     193200.8    128.8
                                                                   ========
System Benchmarks Index Score                                         240.3

For 1.25 per month with monthly payment option, I guess this is probably the best deal you could find, however as you can see, almost no aspect of this VPS is powerful enough to do any heavy lifting, even the network speed is less than ideal.

Customer Service And Support

Compare to the relatively unimpressive performance of the VPS, customer service is actually really impressive, and is in fact one of the best customer service I have seen to date among the ultra-low-end VPS providers. Rarely any of the ticket I have submitted has gone unanswered for more than half an hour, in fact, most of the tickets were answered in 10 minutes. For example, a ticket I have logged in earlier today (Thursday) was sent in at 2:01pm EST and was answered by 2:07pm, an earlier ticket raised at 12:53AM on a Saturday was answered by 1:03AM, barely 10 minutes later.

On top of that, IPXcore clearly recognize the challenges to run such a tiny little box and was very generous in offering resources for help. I have requested twice to have more RAM temporarily to compile a LNMP stack, and the 2GB assigned to me initially were clearly not enough to compile everything from the source. Not only they have been really fast in responding, when I asked for RAM resources for only 4 hours, they have offered me 24 hours of 256MB of RAM and an additional 2GB of hard drive space was added to my VPS for free permanently. From that perspective, I have to say that IPXcore definitely offer their customers a great experience.

Conclusion

It is a great adventure for IPXcore to try to venture into the ultra-low-end VPS market by creating the first “real” 96MB VPS, and in particular, one of the very few providers, if not the only one, who could actually provide monthly payment option, which could be a big bonus for those who just need a tiny little box to play around with and not doing anything too serious. Granted that the server may not offering great performance, however with great user interface and very generous and timely customer service, this VPS is nonetheless a great toy to play around with for those who would like to venture into the ultra-low-end VPS world.

One thought on “96MB Low End VPS Review Part 44 – IPXCore

  1. Thank you for the kind words. 🙂

    Regarding disk i/o: the node that you’re on is scheduled to be replaced soon, due to poor disk i/o (as you noted) and poor system response. You were put on what’s pretty much our worst node 🙂

    Regarding transfer: All individual connections are throttled to 20 megabit, however, you will be able to pull multiple concurrent 20 megabit connections. I can’t explain the poor Europe transfer, though.

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.