Table of Contents
Introduction
ProfitBricks is in the process of making SSD storage available for provisioning in all data centers. SSD volumes can provide improved server performance in many situations. In this tutorial we will take a look at how to provision SSD storage volumes.
Requirements
Your contract must have access to SSD storage enabled in order to provision it. Please contact your account manager or support if you would like to have this feature added to your contract.
Provisioning
Looking at the DCD (Data Center Designer) Palette we can see two options related to SSD volumes. The first, under Storage, allows you to create a SSD storage volume to attach to a new or existing server. The second, under Composites, allows you to provision a new server with SSD storage attached.
When creating SSD storage volumes, you will notice that the DCD provides some Performance information. Estimated Read and Write values for both IOPs (Input/Output Operations Per Second) and Bandwidth are provided.
Notice how a comment appears below the values when the volume size is less than 100GB. The ProfitBricks engineering team has determined that SSD volumes larger than 100GB will provide better performance.
It is also possible to provision SSD storage volumes using the ProfitBricks Cloud API.
Usage
Using SSD storage for the boot volume provides a decent overall boost in server performance. Beyond that, when and where to use SSD storage will vary depending on what a server is doing.
In general, placing frequently accessed files or databases on SSD volumes allows you to benefit from improved IOPs. There is no substantial benefit to be gained by placing infrequently accessed files on SSD storage volumes. Servers running applications that are configured to use RAM for caching may not see much improvement just by moving to SSD.
The overall load on an application or database server also has to be taken into account. A server may perform just as well with HDD storage as SSD storage when the number of active users is low. Once the number of simultaneous users ramps up, then the benefits of SSD storage become clear. SSD storage will generally perform better than HDD storage when dealing with random read and write loads.
There could be situations where adding a SSD storage volume to an existing server, and then moving certain databases or directories (temp, "scratch", or queues) to the SSD volume could resolve a performance bottleneck.
Test
Benchmarking is not a trivial task. There are numerous variables that can impact how a particular hardware and software configuration will perform. However, to provide some basic comparison between SSD and HDD storage we can use the hdparm
and dd
utilities on the Linux OS. These commands were run on two CentOS 7 cloud servers, one with HDD storage, and the other with SSD storage configured as the boot volume.
| Command | HDD Results | SSD Results |
| -------------------------------------------------------| ------------ | ----------- |
| hdparm -t /dev/vda1 | 33.90 MB/sec | 163.59 MB/sec |
| hdparm -t --direct /dev/vda1 | 30.61 MB/sec | 109.08 MB/sec |
| dd bs=1M count=512 if=/dev/zero of=test conv=fdatasync | 30.8 MB/sec | 191 MB/sec |
We can see that these utilities show an increase in both read and write performance when run on SSD storage volumes.
Other available benchmarking tools, such as fio
, can also be used to get specific data about read and write performance. fio
can be configured to test both random and sequential disk access with different queue depths.
Summary
SSD storage volumes can provide a nice boost to IOPs for cloud servers. When and where to provision SSD storage will depend quite a bit on a servers intended use and the load placed on it. If you have any suggestions, questions, or experiences to share regarding your use of SSD storage, please comment below or post to the DevOps Community section of this website.