This review is a follow up from my previous blog entry. Long story short — I have been a customer of VPSLink for 17 months and have been using their OpenVZ VPS to host various projects. Recently they launched their Xen VPS hosting product, and Cameron from VPSLink has provided me a Xen Link-3 account to play around.
Before I go on, I feel that I might need to make some disclaimer. VPSLink has also been a regular sponsor of this blog since June this year (in case you have not spotted their skyscraper ads on the right), but I will try to keep my review unbiased :) I was going to give their Xen beta program a try any way when it was announced 2 months ago, but was too busy to do so.
The Product
VPSLink launched their Xen VPS hosting product a month ago after one month of public beta testing. You can read about their Xen Virtual Private Server here:
New Features available in XEN:
- Swap space
- Full control of all iptables modules
- Loadable kernel modules (please note you can not run a fully custom kernel)
- Access to remote console for troubleshooting
XEN differs greatly than OpenVZ and there are several factors to keep in mind when selecting a XEN based VPS account.
Then it listed out a few things to consider to choose between Xen and OpenVZ. None of those matters to me anyway, and it failed to explain how Xen and OpenVZ are in fact intrinsically different, especially how memory model differences will turn a perfectly fine application on Xen to instability on OpenVZ, which I sort-of explained here.
The plan price is nowhere near low-end, however they are very cheap consider VPSLink/Spry’s reputation. My test VPS is a “Link-3″, which comes with:
- 10GB disk space
- 300GB bandwidth
- 1 dedicated IP
- 256MB dedicated RAM
It costs between $20.79 – $24.95, depending on the length of your billing cycle.
Signing Up and Setting Up
Signing up is the easy bit — it has all been done for me when I asked Cameron for a test VPS! However from my previous sign up experience (over 17 months ago), the provisioning is instantaneous (if you pass through their automated fraud check). You should be receiving instructions within minutes of payment.
VPSLink uses its internally developed control panel for both OpenVZ and Xen VPS. It is easy to navigate and the layout is pretty much task-driven. The first things I do were logging into control panel, select my new VPS, click on “Manage OS” and then “Install OS”. Ubuntu 7.10 came out around 2 weeks ago, and it was already available on the list of OS images to install. “Why not give the latest Ubuntu a try as well?” so I clicked on Submit and waited.

It took only a few minutes for VPSLink to rebuild the server with a base Ubuntu installation (which is one thing I really like about VPS). An email is sent out containing the root password, and I am in with a root shell in minutes!
Software and Hardware
As it is paravirtualisation and you cannot run your own kernel, VPSLink dictates the kernel version on all the Xen VPS. Here is the uname -a output.
# uname -a Linux vpslink 2.6.18-8.1.15.el5xen #1 SMP Mon Oct 22 09:33:52 EDT 2007 i686 GNU/Linux
Looks like it is running the kernel from CentOS 5 (or RHEL 5). You can build your own kernel modules but if you are not running CentOS 5, you’ll need to grab the Linux 2.6.18 kernel source and compile your kernel module against that.
Hardware wise it is not that fancy. Basically VPSLink has two classes of servers — dual core single proc for Link-1 to Link-3 customers, and dual core dual proc Xen for Link-4 to Link-6 customers. So what do I get with my Link-3 account?
# cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 15 model name : Intel(R) Core(TM)2 CPU 4400 @ 2.00GHz stepping : 2 cpu MHz : 1994.998 cache size : 2048 KB fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 10 wp : yes flags : fpu tsc msr pae mce cx8 apic mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc up pni monitor ds_cpl est tm2 cx16 xtpr lahf_lm bogomips : 4989.56
Basically an Intel Core 2 Duo E4400 CPU with 2MB L2 cache running at 2.0Ghz, i.e. “low-end”. Moreover, my VPS has only been assigned to one of the two CPU cores so it is impossible to burst my CPU usage to the full potential of the CPU. A single E4400 core is still plenty of power for a 256MB VPS and my neighbours will be happy to know that my “make -j4″ will not affect the whole node.
Still, while a single E4400 core packs enough power for a low-end VPS (and VPSLink probably keeps the number of domU low), it is nothing to be boasted about. I have no CPU performance problem though over these two weeks, as web-serving VPS usually have their bottleneck in disk IO.
There are plenty of disk IO bench mark programs, but I just use something that is readily available — hdparm.
# hdparm --direct -t /dev/sda1 /dev/sda1: Timing O_DIRECT disk reads: 486 MB in 3.00 seconds = 161.88 MB/sec # hdparm -T /dev/sda1 /dev/sda1: Timing cached reads: 2330 MB in 2.00 seconds = 1165.09 MB/sec
Direct disk read at 161 MB/sec — that’s pretty impressive! Reading from disk cache at 1.1GB/sec — Jeez! It probably has the best disk read speed comparing with my other VPS.
Network
VPSLink is in Seattle, inside Spry’s own data centre. Network performance has been great around the clock, and there has not been any downtime that has been detected (polling at 5 minutes interval).
But you know what is good about hosting in Seattle? Three words — Amazon Web Services. Amazon is also in Seattle, and if you are a heavy user of services like Amazon S3, or want a static IP front-end for your fleet of Amazon EC2 slaves, the latency and bandwidth between your servers and Amazon can make a huge difference.
Check out these benchmarks.
# tcptraceroute s3.amazonaws.com
Selected device eth0, address 209.40.199.168, port 39897 for outgoing packets
Tracing the path to s3.amazonaws.com (207.171.181.225) on TCP port 80 (www), 30 hops max
1 64.79.219.1 0.671 ms 0.370 ms 0.433 ms
2 64.79.223.1 0.429 ms 0.458 ms 0.470 ms
3 ge1-4.cr01.sea02.mzima.net (72.37.232.33) 9.481 ms 0.933 ms 0.466 ms
4 xe0-1.cr01.sea01.mzima.net (216.193.255.193) 1.470 ms 10.979 ms 0.912 ms
5 ge-6-2.car3.Seattle1.Level3.net (4.71.152.1) 0.931 ms 0.943 ms 0.996 ms
6 ae-12-55.car2.Seattle1.Level3.net (4.68.105.131) 0.951 ms 0.965 ms 0.976 ms
7 * * *
8 185-33.amazon.com (207.171.185.33) 1.459 ms 0.953 ms 0.973 ms
9 177-159.amazon.com (207.171.177.159) 0.976 ms 1.449 ms 0.968 ms
10 207-171-181-225.amazon.com (207.171.181.225) [open] 0.982 ms 0.946 ms 0.960 ms
# wget http://s3.amazonaws.com/ec2/assets/aws_console_screencast_1.mov
--06:45:35-- http://s3.amazonaws.com/ec2/assets/aws_console_screencast_1.mov
=> `aws_console_screencast_1.mov'
Resolving s3.amazonaws.com... 207.171.183.113
Connecting to s3.amazonaws.com|207.171.183.113|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 11,004,220 (10M) [video/quicktime]
100%[==========================================================================>] 11,004,220 11.36M/s
06:45:36 (11.34 MB/s) - `aws_console_screencast_1.mov' saved [11004220/11004220]
Yes, read that! Less than 1ms latency to Amazon S3, and pulls a 10MB movie file down at 11.36MB/sec! Awesome.
Still with Bugs
Great performance aside, somehow I feel that VPSLink’s Xen VPS is still not 100% ready. There has been a few issues with their console panel and OS images.
- Somehow
/etc/fstabwasn’t set up properly on the Ubuntu 7.10 image. It is emptied out, so commands likedfandmountdo not show the root directory is mounted, thus you can’t find out how much space has been used. It wasn’t an issue with Debian 4 OS image that I’ve tried. - Getty wasn’t initialised on console for my Ubuntu 7.10 image either, but then console access from control panel does not work for me either (always got connection timeout). The screen cast with CentOS shows it’s working fine so it might just be Ubuntu OS image again.
- Other glitches like hostname is not persistent.
None of that are show stoppers, and VPSLink is actively working on resolving these issues. Hopefully they will be resolved soon.
Conclusion
Xen VPS at VPSLink provides solid performance and great network connectivity especially to Amazon Web Services. The low-end VPS might not get state of the art hardware, but disk IO is certainly not the issue in my own experiment.
Moreover, it has a great community and good support. Recommended if you are looking for a West coast VPS.

5
Gutsy is a bit funky to get running under Xen, I have a list of stuff as long as my arm that needs to be tweaked to make it work the same.
Well I am happy to say Gutsy runs fine on VPSLink’s Xen VPS except there are a few issues that users can fix themselves. SliceHost (where this blog is hosted) has also started offering Gutsy as server images so maybe you want to contact them to compare your a list of stuffs :)
I meant modifications to scripts that come with xen-tools, not so much what happens after the fact… eg by default Gutsy can’t be installed and just work without manually deleting some scripts triggering hwclock stuff.
I don’t know how much I’d trust those disk benchmarks. I’ve found that running under Xen, a DomU mapped to a raw file based disk image will report MUCH higher speeds than even the physical device is capable of. I believe this is due to caching on the host filesystem.
I can vouch for your success. I bit the bullet and purchased 6 months of Link3 Xen service with VPSLink.com and the experience has been a complete success.
I was able to find a pre-compiled Fuse module online for the version of the Xen kernel VPSLink is running, so I was spared the pain of having to compile it by hand. The module version I used wasn’t exact (2.6.18-53.1.13.el5xen kernel, but the Fuse module package I used was named fuse-kmdl-2.6.18-53.1.21.el5xen-2.7.3-8_9.el5.i686.rpm) but it was close enough to work.
Both sshfs and Google’s FuseOverAmazon S3 FUSE modules work flawlessly on the VM, as does Hamachi VPN. I’ve started both Samba and Netatalk daemons on the VM, and my Max OSX and Windows clients at home are able to use their native filesharing protocols across the Hamachi VPN. I’ve shared out my S3 mount across Samba and Netatalk, so my machines at home have direct access to an infinitely-sized “disk drive” at S3. Exposing my third-party hosting sites’ filesystems across SSHFS met with similar success.
Using a test 100Mb file, I measured 7Mbps transfer speed between my VM and S3.
I started with Link2 service but quickly upgraded to Link3 after hitting a memory ceiling. The only hiccup so far came when VPSLink tried to bill me for Link4 service when I was clearly running Link3. I sent an email over and they quickly fixed the billing problem.
Your post initially encouraged me to take the VPSLink route, and I’m glad I did. Thanks for the suggestion!
-Fred