Skip to main content

Linode is Truly a Great Hosting Company

Migrated to new cluster no questions asked; got performance boost!

I have been using Linode as a hosting provider since July, 2010 after I outgrew WebFaction's shared plans. Overall I have been extremely happy with the service, reliability and support, so happy in fact I have prepaid for over a year.

Lately however I have been reaching my memory limit and hitting the swap space; running for fun a Minecraft server will do that.

It quickly became apparent that any disk IO would bring the sites served from that VPS to a crawl. Doing some IO benchmarking tests revealed a worrisome statistic:

root@)root@shared-hosting-1~>$  dd if=/dev/zero of=test bs=64k count=3k oflag=dsync && rm test
3072+0 records in
3072+0 records out
201326592 bytes (201 MB) copied, 26.3025 s, 7.7 MB/s
rm: remove regular file `test'? y

That is correct, lously 7.7MB/s copy test. Having access to Linode and burst.net servers I run the same VPS benchmark on them with following results:

Linode VPS #1

root@klisrv01~>$  dd if=/dev/zero of=test bs=64k count=3k oflag=dsync && rm test
3072+0 records in
3072+0 records out
201326592 bytes (201 MB) copied, 3.15058 s, 63.9 MB/s
rm: remove regular file `test'? y

Linode VPS #2

root@klisrv02:~>$  dd if=/dev/zero of=test bs=64k count=3k oflag=dsync && rm test
3072+0 records in
3072+0 records out
201326592 bytes (201 MB) copied, 13.6833 s, 14.7 MB/s
rm: remove regular file `test'? y
root@klisrv02:~>$

Linode VPS #3

root@klisrv03/>$  dd if=/dev/zero of=test bs=64k count=3k oflag=dsync && rm test
3072+0 records in
3072+0 records out
201326592 bytes (201 MB) copied, 13.4197 s, 15.0 MB/s

Burst.net VPS #4

root@klisrv04:~>$ dd if=/dev/zero of=test bs=64k count=3k oflag=dsync && rm test
3072+0 records in
3072+0 records out
201326592 bytes (201 MB) copied, 3.72182 s, 54.1 MB/s

Burst.net VPS #5

root@269622:~>$ dd if=/dev/zero of=test bs=64k count=3k oflag=dsync && rm test
3072+0 records in
3072+0 records out
201326592 bytes (201 MB) copied, 4.51529 s, 44.6 MB/s
rm: remove regular file `test'? y

I forwarded the above along with a polite support ticket asking to be moved and with no objection was offered a migration to a new cluster. The migration itself was super easy - just press the big notice button - and resulted only in about 30 minutes of downtime.

Post migration results

The moment of truth we have been all waiting for, ... running the above benchmark command results in:

root@shared-hosting-1:~# dd if=/dev/zero of=test bs=64k count=3k oflag=dsync && rm test
3072+0 records in
3072+0 records out
201326592 bytes (201 MB) copied, 2.41932 s, 83.2 MB/s
root@shared-hosting-1:~#

Just freaken gorgeous! Absolutely monumental, increase works out to be over 10 times more than before migration.

Final thoughts

If awesome service is important to you do give Linode a try, I am always tempted to go dedicated server or find a cheaper VPS - but what I would be saving in costs or getting in extra hardware specs I would be trading for excellent support and reliability, and that in my books is not worth doing a switch for.

The reason I have access to two burst.net servers is that we gave them a try as a cheaper alternative a while back and decided against: burst memory = bad and hardware stability issues.

Do you use my referral code: 7d884fa5262b62b8735502da003fee34061db49b so that I do get a small kick back for a sign up.

Comments

  1. The thing I like the most about Linode is that it upgrades the storage and RAM for all users once a year without extra cost. It goes perfectly with the uptime monitoring service I use for my site from http://monitive.com.

    ReplyDelete
  2. Nice to read your post!!! Well the two and most important factors for $1 Web Hosting are the actual computer space that’s allotted for website files and also the speed at which a person can access those files when they are trying to access them using the Internet.

    ReplyDelete

Post a Comment

Popular posts from this blog

How to child proof a fireplace

DIY - Do it yourself fireplace child guard Our wonderful 8.5 month old Sofia has become a crawling race car with an untamed thirst for exploration. And so with the cold nights approaching we needed to child proof the fireplace. This however proved to be more difficult than would reasonably expect, I've checked the local Toys "R" Us, Walmart, and even a Canadian Tire with no success for a ready to use product. Internet search was more fruitful and returned a few online stores one could order from, however in all honestly they didn't look too sturdy to me. So I build my own relatively quickly and inexpensively. Materials needed is a privacy plastic lattice - the smallest hole pattern - a few screws and anchors; tools needed are a drill, and a handsaw if you don't have the lattice cut at the store - that’s it. The construction consits of screwing the lattice into the wall and the final product is easiest explained through following pictures. Feel free to +1 this po…

Duplicate value found: duplicates value on record with id: <unknown>.

System.DmlException: Insert failed. First exception on row 0; first error: DUPLICATE_VALUE, duplicate value found: <unknown> duplicates value on record with id: <unknown>.The above error is triggered in the database layer and caused by a trigger or workflow outside of your main code of block that is bubbling this exception. This is rather difficult to track down especially if you are unfamiliar with the code, I am sharing my procedure in the hopes this saves you time - if you find this helpful drop me a line or follow me on twitter @danielsokolows. This error is caused by unique field constraint on the object, so the first step is to examine the object and locate the API names of all unique fieds. You can do this through SF direclty 'Setup < Customize &lt <object being inserted> &lt Fields' or by downloading the `src/objects` metadata information and searching for <unique>; I preffer the latter and actually download ALL matadata information f…

Storing passwords in PuTTY

How to save SSH username/password for auto login in PuTTy The answer is you can't do it...at least in plain PuTTy. However there is an awesome fork with that let's you store the username and password and other additional features called KiTTy.



So grab yourself a copy and +1 this if you do, thanks.