Hard-Drives-and-RAM

Improve Magento’s speed using RAM drives

  • Sharebar

Improve Magento’s speed using RAM drives

Wikipedia explains very well what RAM drives are and we all know that SSD are fast reading but have issues with endurance

There’s a myriad of options and possibilities that one could do to improve Magento’s performance and adding a different one to the mix doesn’t really hurt, right?
In all systems (confirmation required) you can use /dev/shm, this example is mainly if you want to keep your data separated and mounted in a specific place or give your mount point an specific name.

If anything using /dev/shm is recommended but keep in mind that you’d have to mount it the same way for Magento to use it as it will search for the var directory.

Let’s get down to it, I am using FreeBSD now so let’s start the experiment with it:

FreeBSD, this requires sudo:

/sbin/mdmfs -M -S -o async -s 4096m md0 magento_var_folder_path 
/bin/chmod 777 magento_var_folder

To remove the mount:

 
/sbin/umount -f magento_var_folder_path 
/sbin/mdconfig -d -u 0 

So in my case I just did the following:

 
cd /usr/home/ltineo/www/m/mage 
sudo mdmfs -M -S -o async -s 4096m md0 var 
sudo chmod 777 var 

The Syntax for Ubuntu:

 $ sudo mount -t tmpfs -o size=512M,mode=777 tmpfs magento_var_folder_path 

My computer setup:

OS:              FreeBSD 9.1 
WebServer:       Apache 2.2 
Database Server: Mysql 5.5 
Memcache:        no 
Memory:          12GB of Ram 
CPU:             I7 @ 3.4GHz 
Architecture:    64bits 
Solr:            enabled 
Magento:         Enterprise 1.12.0.2 
Local modules:   No 
Caching:         Regular and FPC enabled

So why whould you bother doing this, if the cache will be volatile and upon reboot you are starting up in cold?

Let’s take a look at the numbers:

The siege file can be found here http://pastebin.com/RaJKCxf1

 siege -t1m -c100 -b -i -f mage.dev.siege 

REGULAR DRIVE

ON COLD

 
 Transactions:              102 hits 
 Availability:              53.12 % 
 Elapsed time:              59.38 secs 
 Data transferred:          6.23 MB 
 Response time:             9.99 secs
 Transaction rate:          1.72 trans/sec 
 Throughput:                0.10 MB/sec 
 Concurrency:               17.17 
 Successful transactions:   102 
 Failed transactions:       90 
 Longest transaction:       30.30 
 Shortest transaction:      0.00 
 

CACHED

 
 Transactions:              914 hits 
 Availability:              100.00 % 
 Elapsed time:              59.25 secs 
 Data transferred:          58.18 MB 
 Response time:             6.04 secs 
 Transaction rate:          15.43 trans/sec 
 Throughput:                0.98 MB/sec 
 Concurrency:               93.17 
 Successful transactions:   914 
 Failed transactions:       0 
 Longest transaction:       28.76 
 Shortest transaction:      0.05 
 

RAM DRIVE

ON COLD

 
 Transactions:              798 hits 
 Availability:              100.00 % 
 Elapsed time:              59.23 secs 
 Data transferred:          50.52 MB 
 Response time:             6.90 secs 
 Transaction rate:          13.47 
 trans/sec Throughput:      0.85 MB/sec 
 Concurrency:               93.01 
 Successful transactions:   798 
 Failed transactions:       0 
 Longest transaction:       23.83 
 Shortest transaction:      0.18 
 

CACHED

 
 Transactions:              940 hits 
 Availability:              100.00 % 
 Elapsed time:              59.78 secs 
 Data transferred:          61.33 MB 
 Response time:             5.93 secs 
 Transaction rate:          15.72 trans/sec 
 Throughput:                1.03 MB/sec 
 Concurrency:               93.19 
 Successful transactions:   940 
 Failed transactions:       0 
 Longest transaction:       18.66 
 Shortest transaction:      0.15 
 

So as you can see running Magento on cold on a RAM drive was almost as good as running it on a cached regular drive.

Of course I’d never suggest to use this over something like REDIS but if you have a load balancer using a NFS RAM Drive share might not be a bad idea if you are using Memcache.

The main benefit of course is that the longest transaction on the ram drive without cache is shorter than the longest transaction on a regular drive with cache enabled by a lot!

Granted it would be a good idea to further this research with a more robust test for to obtain both qualitative and quantitative results

VN:F [1.9.22_1171]
Rating: 10.0/10 (2 votes cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)
Improve Magento’s speed using RAM drives, 10.0 out of 10 based on 2 ratings
 Improve Magento’s speed using RAM drives

About Luis Tineo

Husband, Father, performance improvement junkie, biker and video gamer, Linux user and in my day job I'm a Systems Architect at Blue Acorn.