
With more demanding applications, there is an ever increasing need for improved speed of data transfer from the disk to the network card. This is benchmarked using Input Output Per Second or IOPS.
Increasing IOPS can be accomplished in a variety of ways at differing costs. This article provides information about IOPS with SSD, SAS and SATA disks (as of October 2011).
Using RAID technology to stripe data across multiple disks will speed up IOPS. Many servers can take multiple disks, e.g. Dell R710 and HP DL380 can take 8 x 2.5inch disks. For a large number of disk spindles, such as 24, a SAN would usually need to be attached; however, bottlenecks can then occur at the connection between the SAN and the server. This connection would be via an iSCSI card or a Fibre Channel card and a switch. iSCSI speeds range from 1 to 10Gbps. Fibre channel is usually 4-8Gbps.
Current indications from manufacturers are that fibre channel technology will be replaced by iSCSI over the next few years, so iSCSI may be a better route for future proofing.
| RAID Type | Input Output per second (IOPS) |
| Raid 0 (striping) | 144 IOPS |
| Raid 5 (striping and distributed parity) | 82 IOPS |
| Raid 10 (striping and mirroring) | 115 IOPS |
SATA and SAS drives have different spin speeds, typically 7200rpm, 10,000 rpm and 15000 rpm. High spin speeds will usually result in faster data transfer. A benefit of the SSD drives is that there are no moving parts; however the limitation is cost and the amount of data that can be held on the drive.
The cheapest disks are SATA, followed by SAS then Solid State Drives (SSD). SATA Drives with 2TB storage capacity are much cheaper than SSD drives with 50GB storage capacity.
Note that SSD drives can be supplied with SATA or SAS connections.
| Price per GB | Drive Size (GB) | IOPS | Disk Model | Price (exc VAT) | |
| SATA 7200RPM | £0.06 | 1000 | 169.77 | Seagate Barracuda | £55 |
| SATA 15000RPM | £0.18 | 300 | 286.81 | Seagate Cheetah | £150 |
| SSD SATA | £0.46 | 120 | 8113.26 | SuperTalent TeraDrive | £204 |
Different RAID cards will produce different performance effects at different costs.
| Payload | Read/Write | Random/Sequential | |
| PERC6i | 4k | 95/5 | 75/25(R) |
| 64K | 98/2 | 0/100(S) | |
| 1M | 100/0 | 100/0(R) | |
| H700 | 4k | 67/33 | 100/0(R) |
| 64k | 0/100 | 0/100(S) | |
| 8k | 70/30 | 100/0(R) |
The graph below shows the H700 raid card being tested against different disk types in Raid 5. As shown in the graph the SSDs achieve a higher performance in comparison to the SAS drives. A combination of the more expensive SSDs and a good RAID card will increase disk performance for application use.
Rather than increasing the hardware capability, it is evidently more sensible to try to improve the performance on a software level first.
Inefficient writing of queries or configuration of the database can result in massive IO requirements.
Here is a real world example of some tuning we undertook for a client:
Changing the SAN from RAID 5 to RAID10 gave a 25% speed increase.
Increasing processing power increased speed. Increasing processor 4 fold meant a 4 fold increase in speed.
Setting VMware to use hardware MMU.
Tuning MySQL accordingly, changing lots of variables but each one can improve performance.
If your application is very demanding on IO, it is important to first tune your application as far as possible. Rewriting SQL queries, changing the configuration of databases and reducing the amount of stored data retrieved will often dramatically reduce the amount of IO required. If software methods have been exhausted, improving IO with hardware improvements can be looked at.
The use of different RAID configurations, disk types and arrays is the next step.
SSDs offer the best IOPS results as shown in benchmarks but the costs may be prohibitive and storage capacity is limited.
For further information on high performance dedicated server hosting, please contact our technical team: enquiries@firstserv.com.