Rackspace offers 2 types of block storage:
Standard (SATA) @ $015/GBandHigh-Performance (SSD) @ $0.70/GB
Seeing that the SSD storage is 4x the cost of SATA I decided to see if the performance is also 4x.
An 8GB(RAM) system running ubuntu 12.04&2 100GB volumes with the xfs file system mounted with the following options:
/dev/xvdb /fast xfs noatime,nodiratime,allocsize=512m 0 0 /dev/xvdd /slow xfs noatime,nodiratime,allocsize=512m 0 0
Basic test using dd:
I’ve benchmarked lots of storage systems in the past and I always like to start out with dd.I do this because it doesn’t take anytime to set up and should give you some idea of how it performs.
In this test I create a 20GB file on each mounted filesystem using the following command:
dd if=/dev/zero of=10GB.file bs=1M count=20k
The results are a little surprising:
Volume write performance:
standard 105 MB/shigh-performance 103 MB/sthe hosts's own volume 135 MB/s
Wow, not what are were hoping for.I ran this test several times and the “high-performance” storage was always the slowest.To quote Homer Simpson “Doh!!”
I ran bonnie with the following args, basically I specified double the amount of RAM for the test.
For sequential reads and writes they were about the same, this is expected as dd already showed this:
Volume sequential reads sequential writes standard 95981/sec 16564/sec high-performance 95927/sec 15633/sec localVM 108463/sec 1208/sec
The results now show where the high-performance excels which is random seeks.
Volume random seeks standard 473.4/sec high-performance 1969/sec localVM 578.6/sec
The question was:Does the 4x cost of high-performance storage perform 4x?
The answer is yes.
Nice job rackspace.
However, as with the sequential numbers from above it doesn’t always out perform standard or local disk. So before you decide to use the more expensive option benchmark your application on it.
We are in the midst of upgrading from 5.3.10 to 5.4 and couldn’t find a debian package for it.The current stable version is 5.4.10 but this changes often and I wanted to automate the compiling and packaging process.First thanks to Jordan Sissel who is a bad ass sysadmin/developer and who wrote fpm which I’m using here to create the debian package.
The end result is a script that will install prerequisite pacakges, download, compile and package which ever php version you specify.
The basic process is:
1 install the prerequisite packages needed to compile
2 download the php source
6 make install but do this while changing its destination directory
7 create the package
Step 6. is where php got a little tricky.In the fpm wiki page which describes how to package something that uses make install ( https://github.com/jordansissel/fpm/wiki/PackageMakeInstall )It has you changing the destination directory in the make install process by specifying:
make install DESTDIR=/tmp/installdir
However this didn’t work with php, instead I had to specify the install_dir:
INSTALL_ROOT=/tmp/installdir make install
FPM is really simply to use, also because its a ruby gem is easy to install.To create the package I’m using the following command:
fpm -s dir -t deb -n php -v 5.4.10 -p "libmcrypt-dev" -p "libt1-dev" --deb-user root -p php-VERSION_ARCH.deb --description 'php 5.4.10 compiled for apache2' -C /tmp/installdir etc usr
Its pretty self explaintory but a few things I’ll point out are “-p” which are packages that are dependancies, and “etc” & “usr” are the sub directories to /tmp/installdir which you want packaged up.
Script to download, compile and package php
php 5.4.10 debian package for ubuntu 12.04
I take ownership of a companies infrastructure.
To manage it I write software.
My language of choice is ruby and the framework is chef.
Along with these skills I also bring an expertise in many technologies.
MySQL, apache, Linux, mongodb, data centers, cloud providers, etc……..
I also pair with engineering to streamline processes such as deployments, metrics and performance, scaling, security and continuous integration and testing.