Rackspace versus RamNode Performance Benchmark

Server Specs

  • RackSpace:

    • OS: Ubuntu 12.04 64 bit
    • Memory: 1024MB
    • Hard Drive: 40GB
    • CPU: Quad Core AMD 2.2 GHz
    • Price: $50/month
  • RamNode:

    • OS: Ubuntu 12.04 64 bit
    • Memory: 512MB
    • Hard Drive: 10GB
    • CPU: Dual Core Intel 3.2 GHz
    • Price: $8/month

Disk IO Test

Write 1GB File

1
time sh -c "dd if=/dev/zero of=ddfile bs=8k count=128000 && sync"
  • Rackspace: 12.612s seconds @ 98.7 MB/s
  • RamNode: 1.224s seconds @ 1.1 GB/s`

Speedtest (Download)

1
time wget http://cachefly.cachefly.net/100mb.test
  • RackSpace: 1.966 seconds @ 59.3M/s
  • RamNode: 2.0 seconds @ 50.7M/s

CPU Test

1
openssl speed sha1 -elapsed
  • RackSpace: 119125 sha1s in 3.00s
  • RamNode: 257552 sha1s in 3.00s

Conclusion

RamNode VPS is the winner when it comes down to performance and price. I have 2 servers (1 web and 1 DB server) at RamNode for about $8 / month TOTAL! I am unsure about their support system since I have only had this server for a week and have not had any need to contact their support.

I have had several servers at RackSpace and their services/customer support is excellent. Their pricing is expensive for the performance you Vultr or FireHost.

If you want to give RamNode a shot then I would appreciate it if you would use my affiliate link below:

https://clientarea.ramnode.com/aff.php?aff=175

Speed Up and Optimize Magento with Redis

Prerequisite:

Youll need to install the following scripts on to your Magento site. This will make this module installation very easy.

Step 1 Install Redis (2.4+)

My server is running Ubuntu 12.04 x64 so these are the commands I ran to install Redis:

1
2
3
add-apt-repository ppa:chris-lea/redis-server
apt-get update
apt-get install redis-server

(Optional) Replace the init.d script with Upstart

1
2
service redis-server stop
update-rc.d redis-server disable

Dump the contents below into /etc/init/redis-server.conf

1
2
3
4
5
6
7
8
description "redis server"
start on runlevel [23]
stop on shutdown
exec sudo -u redis /usr/bin/redis-server /etc/redis/redis.conf
respawn

Now we start the service with Upstart

1
start redis-server

Step 2 Install PHPRedis

1
2
3
4
5
git clone git://github.com/nicolasff/phpredis.git
cd phpredis
phpize
./configure
make && make install

Open up your php.ini file and add extension=redis.so , if you are on Ubuntu then run this command:

1
echo "extension=redis.so" > /etc/php5/conf.d/redis.ini

Step 3 Install Snappy Compression (Optional)

1
2
3
4
5
6
7
aptitude install libsnappy-dev libsnappy1
wget http://php-snappy.googlecode.com/files/php-snappy-0.0.2.tar.gz
tar zxvf php-snappy-0.0.2.tar.gz
cd php-snappy/
phpize
./configure
make && make install

Open up your php.ini file and add extension=snappy.so , if you are on Ubuntu then run this command:

1
echo "extension=snappy.so" > /etc/php5/conf.d/snappy.ini

Step 4 Restart Apache (or PHP5-FPM)

1
service apache2 restart

If you are running php5-fpm then use the following command:

1
service php5-fpm restart

Step 5 Install Redis modules

1
2
3
4
5
6
cd /var/www/
modman init
modman clone git://github.com/colinmollenhour/Cm_Cache_Backend_Redis.git
modman clone git://github.com/colinmollenhour/Cm_RedisSession.git
./n98-magerun.phar cache:disable # disable magento cache
./n98-magerun.phar sys:maintenance --on # put your site into Maintenance mode

Open your local.xml file (located in app/etc/) and add the following sections:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<config>
<global>
...
<session_save>db</session_save>
<redis_session>
<!-- All options seen here are the defaults -->
<host>127.0.0.1</host>
<!-- Specify an absolute path if using a unix socket -->
<port>6379</port>
<timeout>2.5</timeout>
<!-- This is the Redis connection timeout, not the locking timeout -->
<persistent>sess-db0</persistent>
<!-- Specify unique string to enable persistent connections. E.g.: sess-db0 -->
<db>0</db>
<compression_threshold>2048</compression_threshold>
<!-- Set to 0 to disable compression -->
<compression_lib>snappy</compression_lib>
<!-- gzip, lzf or snappy -->
<log_broken_locks>0</log_broken_locks>
<!-- Useful for debugging fatal errors or extremely slow pages -->
<max_concurrency>6</max_concurrency>
<break_after_frontend>5</break_after_frontend>
<!-- Frontend arguably doesn't need locking as urgently -->
<break_after_adminhtml>30</break_after_adminhtml>
<bot_lifetime>7200</bot_lifetime>
<!-- Bots get shorter session lifetimes. 0 to disable -->
</redis_session>
<cache>
<backend>Cm_Cache_Backend_Redis</backend>
<backend_options>
<server>127.0.0.1</server>
<!-- or absolute path to unix socket -->
<port>6379</port>
<persistent>cache-db0</persistent>
<!-- Specify a unique string like "cache-db0" to enable persistent connections. -->
<database>1</database>
<password></password>
<force_standalone>0</force_standalone>
<!-- 0 for phpredis, 1 for standalone PHP -->
<connect_retries>1</connect_retries>
<!-- Reduces errors due to random connection failures -->
<read_timeout>10</read_timeout>
<!-- Set read timeout duration -->
<automatic_cleaning_factor>0</automatic_cleaning_factor>
<!-- Disabled by default -->
<compress_data>1</compress_data>
<!-- 0-9 for compression level, recommended: 0 or 1 -->
<compress_tags>1</compress_tags>
<!-- 0-9 for compression level, recommended: 0 or 1 -->
<compress_threshold>20480</compress_threshold>
<!-- Strings below this size will not be compressed -->
<compression_lib>snappy</compression_lib>
<!-- Supports gzip, lzf and snappy -->
</backend_options>
</cache>
...
</global>
...
</config>

Turn cache back on and migrate sessions

1
2
3
sudo php .modman/Cm_RedisSession/migrateSessions.php -y
./n98-magerun.phar cache:enable
./n98-magerun.phar sys:maintenance --off

Must Have Ubuntu 12.04 Repos for Web Developers

Here is a list of my most commonly used repositories for Web Development in Ubuntu 12.04

Redis 2.6

1
add-apt-repository ppa:chris-lea/redis-server

PHP 5.4

1
add-apt-repository ppa:nathan-renniewaldock/ppa

MariaDB 5.5

1
2
sudo sh -c 'echo "deb http://ftp.osuosl.org/pub/mariadb/repo/5.5/ubuntu oneiric main" >> /etc/apt/sources.list.d/mariadb.list'
wget -O- http://ftp.osuosl.org/pub/mariadb/PublicKey | apt-key add -

NodeJS (Latest Stable) and npm

1
add-apt-repository ppa:chris-lea/node.js