Linode and Panix VPS benchmark comparison
In May 2009 I moved my VPS (Virtual Private Server) from being hosted by Linode in Dallas to Panix in New York City. Price wise, the offerings are identical, $21 monthly consisted of a Xen virtual server with 360MB of RAM, 16GB storage and 200GB of transfer, plus one additional public IP address. However, not all virtual private servers are created equal, and as I discovered benchmark measurements showed performance differences between the two offerings. Please bear in mind that the benchmark results that follow are not up to a proper standard of testing (the one host was running a 32 bit operating system whilst the other was 64 bit), testing was done in May (things may have changed subsequently), and you may luck out and be assigned to an underutilized host and get better than expected performance. These benchmark tests are just an interesting read, and may not be as conclusive as I would like, but they allowed me to make up my mind to move over to Panix.
One of the greatest limitations on any virtual host is the reduced amount of RAM available. This affects things like the number of web application instances you can keep running on your web server at the same time. For instance, the Phusion Passenger Users Guide recommends that the parameter “PassengerMaxPoolSize” which is the maximum number of Ruby on Rails or Rack application instances that may be simultaneously active be set to a value of 2 for a VPS with only 256MB of RAM. Having more RAM makes a big difference – the same guide recommends that if your system has 2GB of RAM the parameter be set to a value of 30.
However, another consideration in the case of virtual private servers is the issue of contention for disk access. If your VPS is sharing the same host with approximately 40 others and you’re all trying to read the same physical disk simultaneously it makes sense this will also be a bottleneck. In the case of a Panix VPS it is explicitly stated that storage is achieved using SAN disk arrays over fibre channel. From what I can tell about Linode, disks are not SAN but are directly attached RAID 10.
In the benchmark results that follow, ‘old’ is the Linode running 32-bit Debian stable (Lenny) vs 64-bit on ‘mail’ – the Panix host. Bonnie++ is a tool for disk and filesystem performance measurement, and showed superior benchmarks for Panix (at the cost of higher CPU utilization):
Panix:
Version 1.03d ------Sequential Output------ --Sequential Input- --Random-
-Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
mail 1G 41869 75 47323 15 22774 4 51539 72 53464 3 410.8 0
------Sequential Create------ --------Random Create--------
-Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
16 +++++ +++ +++++ +++ +++++ +++ 31720 72 +++++ +++ +++++ +++
mail,1G,41869,75,47323,15,22774,4,51539,72,53464,3,410.8,0,16,+++++,+++,+++++,+++,+++++,+++,31720,72,+++++,+++,+++++,+++
Linode:
Version 1.03d ------Sequential Output------ --Sequential Input- --Random-
-Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
old 1G 25095 51 21076 4 8116 0 22256 41 36907 0 74.1 0
------Sequential Create------ --------Random Create--------
-Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
16 3171 98 +++++ +++ +++++ +++ 3285 98 +++++ +++ 12042 98
old,1G,25095,51,21076,4,8116,0,22256,41,36907,0,74.1,0,16,3171,98,+++++,+++,+++++,+++,3285,98,+++++,+++,12042,98
hdparm -t /dev/xvda doesn’t show much difference between the two services, but is too unscientific to come to any conclusion. An odd hdparm conclusion is that ‘secondary’ disks, eg. /xvdb are slower, but it could just be file composition.
Nbench test results showed that the offerings were largely equal in terms of CPU speed:
Panix:
BYTEmark* Native Mode Benchmark ver. 2 (10/95) Index-split by Andrew D. Balsa (11/97) Linux/Unix* port by Uwe F. Mayer (12/96,11/97)TEST : Iterations/sec. : Old Index : New Index : : Pentium 90* : AMD K6/233* --------------------:------------------:-------------:------------ NUMERIC SORT : 872.48 : 22.38 : 7.35 STRING SORT : 131.52 : 58.77 : 9.10 BITFIELD : 4.0716e+08 : 69.84 : 14.59 FP EMULATION : 137.8 : 66.12 : 15.26 FOURIER : 26793 : 30.47 : 17.11 ASSIGNMENT : 30.251 : 115.11 : 29.86 IDEA : 6029.6 : 92.22 : 27.38 HUFFMAN : 1976.1 : 54.80 : 17.50 NEURAL NET : 39.809 : 63.95 : 26.90 LU DECOMPOSITION : 1396.4 : 72.34 : 52.24 ==========================ORIGINAL BYTEMARK RESULTS========================== INTEGER INDEX : 62.027 FLOATING-POINT INDEX: 52.042 Baseline (MSDOS*) : Pentium* 90, 256 KB L2-cache, Watcom* compiler 10.0 ==============================LINUX DATA BELOW=============================== CPU : 4 CPU GenuineIntel Intel(R) Xeon(R) CPU E5410 @ 2.33GHz 2333MHz L2 Cache : 6144 KB OS : Linux 2.6.28-xen3-U-64 C compiler : gcc version 4.3.2 (Debian 4.3.2-1.1) libc : libc-2.7.so MEMORY INDEX : 15.823 INTEGER INDEX : 15.224 FLOATING-POINT INDEX: 28.865 Baseline (LINUX) : AMD K6/233*, 512 KB L2-cache, gcc 2.7.2.3, libc-5.4.38 * Trademarks are property of their respective holder.
Linode:
BYTEmark* Native Mode Benchmark ver. 2 (10/95) Index-split by Andrew D. Balsa (11/97) Linux/Unix* port by Uwe F. Mayer (12/96,11/97)TEST : Iterations/sec. : Old Index : New Index : : Pentium 90* : AMD K6/233* --------------------:------------------:-------------:------------ NUMERIC SORT : 818.88 : 21.00 : 6.90 STRING SORT : 117.4 : 52.46 : 8.12 BITFIELD : 3.6408e+08 : 62.45 : 13.04 FP EMULATION : 123.95 : 59.48 : 13.72 FOURIER : 23156 : 26.33 : 14.79 ASSIGNMENT : 29.876 : 113.68 : 29.49 IDEA : 5413.8 : 82.80 : 24.58 HUFFMAN : 1786.4 : 49.54 : 15.82 NEURAL NET : 35.209 : 56.56 : 23.79 LU DECOMPOSITION : 1297.9 : 67.24 : 48.55 ==========================ORIGINAL BYTEMARK RESULTS========================== INTEGER INDEX : 56.803 FLOATING-POINT INDEX: 46.438 Baseline (MSDOS*) : Pentium* 90, 256 KB L2-cache, Watcom* compiler 10.0 ==============================LINUX DATA BELOW=============================== CPU : 4 CPU GenuineIntel Intel(R) Xeon(R) CPU L5335 @ 2.00GHz 2000MHz L2 Cache : 4096 KB OS : Linux 2.6.18.8-linode16 C compiler : gcc version 4.3.2 (Debian 4.3.2-1.1) libc : libc-2.7.so MEMORY INDEX : 14.617 INTEGER INDEX : 13.852 FLOATING-POINT INDEX: 25.756 Baseline (LINUX) : AMD K6/233*, 512 KB L2-cache, gcc 2.7.2.3, libc-5.4.38 * Trademarks are property of their respective holder.
Performance differences for the Nbench benchmarks may be largely attributed to the difference in processor speed between 2.33 GhZ (Panix) and 2.00 GhZ (Linode). I do know that Linode do continuously and regularly upgrade their hardware, so bear in mind that the above was what I saw on a single instance in May and that things may have moved on since.
There are some minor ping latency differences between Linode and Panix, but in the case of Linode you can choose which data center you want your VPS to be hosted in. Often ping differences are more an accident of geography and network topology; I have been led to believe though that it makes sense that if you’re in South Africa, or Europe to try and use a data center on the upper East Coast to reduce the number of network hops. A friend in the UK had an average ping time to the Linode data center in Newark of 90 ms which seemed to be 40-50 ms faster than the Linode data center in Dallas that I used. Conversely, in my limited testing from Cape Town, I recorded an average ping time to Linode Dallas of 386-400 ms but to Panix in New York it was 432-433 ms (proving nothing really other than that South African ADSL is pretty awful!).
If performance is not your sole reason for choosing a VPS provider then Linode has got a lot going for it with the Linode control panel which is by far the best way to control your VPS. With Linode, I was able to shrink disk images, expand disk images and clone disk images, all of which is useful for making backups. The Panix interface is a lot simpler, and only options to create or destroy images are provided. But, keeping to the topic of backups, Linode do not backup your VPS for you (RAID10 aside) whereas Panix offers a free rsync backup. The Linode backup service is currently in Beta – it looks like it’ll cost you about $5 per month for the Linode plan I was on, but it is worth it.
If you like BSD it is important to note that Panix provide disk images for FreeBSD and NetBSD guests, whereas Linode only offers Linux guests. BSDs are possible with Linode, but seem to be more experimental at this moment in time.

Add a comment: