I wrote about FlashCache there, and since that I run couple benchmarks, to see what performance benefits we can expect.
For initial tries I took sysbench oltp tests ( read-only and read-write) and case when data fully fits into L2 cache.
I made binaries for FlashCache for CentOS 5.4, kernel 2.6.18-164.15, you can download it from our testing stage. It took some efforts to make binary, you may get my instructions for CentOS on FlashCache-dev mail-list, most likely it will not work for different CentOS / Kernel.
The full results, scripts and settings are on Benchmarks Wiki.
* Hardware: Dell PowerEdge R900
* IO subsystems
* RAID10: 8 disks SAS 2.5″ 15K ( main storage)
* SSD-1: Intel X25-E 32GB ( 1 gen firmware) ( Model Number: SSDSA2SH032G1GN INTEL, Firmware Revision: 045C8621)
* SSD-2: Intel X25-M 160GB ( 2 gen ) ( Model Number: INTEL SSDSA2M160G2GC, Firmware Revision: 2CV102HA )
* FlashCache: build over SSD-1 or SSD-2
* Filesystem XFS, builds as: mkfs.xfs -f -d su=16384,sw=40 /dev/sdc
* mounted with -o nobarrier option
* InnoDB files layout: ibdata1 and ib_logfile* are placed on separate RAID partition ( not on FlashCache or SSD)
* Benchmark: sysbench oltp ( read-only and read-write modes), 80mln rows (~18GB of data)
And I am comparing results with data stored:
- Directly on RAID
- Directly on SSD
- Data stored on RAID, but caching in FlashCache ( which located on SSD)
The results for Read-Only case:
As expected with FlashCache the results are very close to running directly on SSD, with small drop, which could be related to additional driver layer.
Read-Write case is more interesting. There I should mention that FlashCache uses WriteBack caching algorithm, which keeps some amount of dirty pages before physically writing to main storage. FlashCache allows you to set target percentage of dirty pages, so it was interesting to see how it affects ( expected that smaller amount of dirty pages puts more IO on main storage leading to smaller performance).
So there results for FlashCache with 20% and 80% of dirty pages and FlashCache based on Intel X25-M:
So it is pretty much impressed with 20% dirty pages we still have decent improvement.
And there are results for Intel X25-E:
By some reason the results much worse if compare to X25-M, probably X25-M in second generation has better performance characteristics ( I will post sysbench fileio benchmarks). Also what is attractive in X25-M, that even in biggest capacity 160GB you can get it by quite acceptable price.
In general FlashCache leaves pretty good impression, I did not have any significant problems ( not speaking about crashes or data loss), probably, the most challenge is to get a binary driver for your kernel :). I will do more benchmarks especially when data exceeds memory, and also it will be interesting to see how it works when we put FlashCache on FusionIO cards instead of Intel SSD.