I have been successfully running my primary Informix development database server on a solid-state drive (SSD) for over a year now. My development server has 12 CPU cores, 24 GB of RAM, 5 TB of disk space, and one 512 GB SSD. I use the server for developing Informix data warehouse projects and benchmarking OLTP versions. I started experimenting with the SSD when I got the server last year. I moved my main Informix database spaces from a pair of mirrored disk drives to the SSD. I was testing two Informix servers: one was release 11.50 and the other was release 11.70. Both versions were much faster on the SSD. Since I used links to the database space, I could copy the space back and forth between regular disk drives and the SSDs, reset the links, and start the server to test performance. The SSD performance was so much better, I did not want to go back to the old disk drives. Stability has been great and I would recommend SSDs for a critical production system.
Disk drives have been the bottleneck in database performance for years. Disks have gotten bigger, and people have been putting more data on them, but they have not really gotten faster. And with more data on a disk, throughput has become a concern. Typically, the best way to speed up disk I/O is to spread your data across more disk drives, putting less data on each disk. SSDs are a game changer, and I think disk drives will go the way of tape drives in the future. Everyone will run on SSDs and disk drives will be used for backup media. SSDs are already showing up more often in laptops, desktops, and server arrays.
One interesting development is hybrid disk systems, which combine SSDs with traditional hard disk drives. Several vendors make arrays with SSDs as intelligent caches for a bunch of traditional disk drives. The idea is that all data pages will be on traditional disk drives and the most-used data pages will be cached on the SSDs. One of my customers is using one of these arrays with great success and experiencing fast performance. The other hybrid trend is pairing an SSD directly with a large disk drive as a disk cache. Seagate and OCZ make disk drives or disk cards that are hybrids. While hybrids do improve performance, they are not as fast as pure SSDs. I think they are just temporary measures until the cost of SSDs comes down and the price-to-performance ratio is improved. As production of SSDs increases and costs decrease, hybrids will not be needed.
For this article, I decided to start over again and do a benchmark to measure the performance improvement that SSDs can deliver. I wanted to stress and measure the performance of sequential reads, bulk sequential writes, and random reads and writes. Using the latest Informix 11.70 FC4 release, I started with a clean install and scripts to create my Informix environment from scratch. The same ONCONFIG file was used for each test, and I switched between the traditional disk drives and SSDs by changing the links of the Informix disk space. The traditional disk drives were a fast mirrored pair as found in most production systems today. The results are shown in the table in Figure 1.
Figure 1: Benchmark SSD vs. Disk Drives
The following is a description of each Benchmark Test task.
In moving the Informix dbspaces to SSD, you also need to consider where else you may have disk I/O bottlenecks. When I first moved to SSDs in the data warehouse benchmark, I did not get the performance gain I expected. Two other factors that were affected by disk I/O performance were temporary space for sorts and output spaces for the query reports. Once I moved the temp space and the output space of my reports to the SSD, the performance gain was clear. In fact, moving your Informix temp dbspace to an SSD may be a fast way to take advantage of this new technology without reconfiguring your whole server.
I discussed SSD technology with other system administrators who manage systems for large imaging processing systems (like moviemaking). These systems need near-real-time access to large image files. These administrators had been successful building RAID-10 arrays of six to eight SSDs. They report that RAID-10 mirroring and striping of data adds safety and improves the already fast performance of SSDs. I would really like to try this with an Informix database.
One concern with SSDs is their reliability as new technology. I have had only one SSD that has lasted me all year without a problem. In the same time period, I have had three regular hard disk drives fail. All media will fail at some time, so the best plan is a backup solution. Regular backups are required for all disk drives. If I were designing a new production Informix database server using SSDs, I would create an Informix High Availability Remote Secondary Server (RSS) server on regular disk drives as a fallback system. But this is a best practice for any production database server.
SSDs were faster for Informix database tasks in all the tests. In sequential scans, random I/O, and reads and writes, the SSDs all came out ahead. SSDs greatly improved the performance of the OLTP random disk I/O benchmark. The numbers in Figure 1 speak for themselves. But suffice it to say, an easy way to speed up your Informix database server is to move your dbspaces to SSDs. Informix runs great on SSDs.
Comments
Looks like some of the percentage improvements above are not exactly accurate. For instance you have said that there is a 64.60% improvement in configuring DBspace and logs. Yet looking at the data I get a 35.4% improvement. Could you correct this?
It looks like in all tests but no.4 you are getting a 20-40% speed increase by using a SSD drive. Which IMHO, tends to say that SSD’s are not worth the cost. However test 4 is most useful to test database performance for a production system (unless you are doing data warehousing, strange that this test performed so poorly.)
The other side of this article is SSD reliability. Sure the performance boost is there, it has to be. However it would be good to know how careful we need to be with these drives. Do we need to have SSD drives in a raid mirror? Were there any bitwise errors in your copying? I have also heard of “Hybrid” technology where a physical raid mirror is kept on HDD of any SSD data. Naturally we can make a RSS server with HDD’s to compensate with speed, but will this server be able to keep up with the production server?
It is a very good article, but it would be good to hear about what works in the field. Bare metal recovery is scary enough, I don’t like our chances with Bare electron!