Fusion Drive: Under the Hood

I took the 27-inch iMac out of the box and immediately went to work on Fusion Drive testing. I started filling the drive with a 128KB sequential write pass (queue depth of 1). Using iStat Menus 4 to actively monitor the state of both drives I noticed that only the SSD was receiving this initial write pass. The SSD was being written to at 322MB/s with no activity on the HDD.

After 117GB of writes the HDD took over, at speeds of roughly 133 - 175MB/s to begin with.

The initial test just confirmed that Fusion Drive is indeed spanning the capacity of both drives. The first 117GB ended up on the SSD and the remaining 1TB of writes went directly to the HDD. It also gave me the first indication of priority: Fusion Drive will try to write to the SSD first, assuming there's sufficient free space (more on this later).

Next up, I wanted to test random IO as this is ultimately where SSDs trump hard drives in performance and typically where SSD caching or hybrid hard drives fall short. I first tried the worst case scenario, a random write test that would span all logical block addresses. Given that the total capacity of the Fusion Drive is 1.1TB, how this test was handled would tell me a lot about how Apple maps LBAs (Logical Block Addresses) between the two drives.

The results were interesting and not unexpected. Both the SSD and HDD saw write activity, with more IOs obviously hitting the hard drive (which consumes a larger percentage of all available LBAs). The average 4KB (QD16) random write performance was around 0.51MB/s, it was constrained by the hard drive portion of the Fusion Drive setup.

After stopping the random write task however, there was immediate moving of data between the HDD and SSD. Since the LBAs were chosen at random, it's possible that some (identical or just spatially similar) addresses were picked more than once and those blocks were immediately marked for promotion to the SSD. This was my first experience with the Fusion Drive actively moving data between drives.

A full span random write test is a bit unfair for a consumer SSD, much less a hybrid SSD/HDD setup with roughly an 1:8 ratio of LBAs. To get an idea of how good Fusion Drive is at dealing with random IO I constrained the random write test to the first 8GB of LBAs.

The resulting performance was quite different. For the first pass, average performance was roughly 7 - 9MB/s, with most of the IO hitting the SSD and a smaller portion hitting the hard drive. After the 3 minute test, I waited while the Fusion Drive moved data around, then repeated it. For the second run, total performance jumped up to 21.9MB/s with more of the IO being moved to the SSD although the hard drive was still seeing writes.


In the shot to the left, most random writes are hitting the SSD but some are still going to the HDD, after some moving of data and remapping of LBAs nearly all random writes go to the SSD and performance is much higher

On the third attempt, nearly all random writes went to the SSD with performance peaking at 98MB/s and dropping to a minimum of 35MB/s as the SSD got more fragmented. This told me that Apple seems to dynamically map LBAs to the SSD based on frequency of access, a very pro-active approach to ensuring high performance. Ultimately this is a big difference between standard SSD caches and what Fusion Drive appears to be doing. Most SSD caches seem to work based on frequency of read access, whereas Fusion Drive appears to (at least partially) take into account what LBAs are frequently targeted for writes and mapping those to the SSD.

Note that subsequent random write tests produced very different results. As I filled up the Fusion Drive with more data and applications (~80% full of real data and applications), I never saw random write performance reach these levels again. After each run I'd see short periods where data would move around, but random IO hit the Fusion Drive in around an 7:1 ratio of HDD to SSD accesses. Given the capacity difference between the drives, this ratio makes a lot of sense. If you have a workload that is composed of a lot of random writes that span all available space, Fusion Drive isn't for you. Given that most such workloads are confined to the enterprise space, that shouldn't really be a concern here.

Meet Fusion Drive Management Granularity
POST A COMMENT

125 Comments

View All Comments

  • Death666Angel - Friday, January 18, 2013 - link

    It looks better than I thought. I'm still not going to use it myself (Windows/Linux user here and I have no trouble managing more than one partition). But it seems better than the usual Windows caching solutions. Still, the non-technical people I know don't need more than a few hundred GB of space on their PC and no one has more than one HDD in their PC anyway. So the easiest way for them (which is what I always recommend) is to have a 256GB SSD and an external 1 to 3TB drive. All their work is on the SSD with daily/weekly backups and photos are on their external HDD (none of those people use the PC to view movies). Reply
  • tipoo - Friday, January 18, 2013 - link

    If you write a huge file, it all gets written to the SSD up to 117GB. But that SSD is filled with other stuff. Won't it be limited by the speed it transfers the old things to the hard drive? How does that work if the files aren't mirrored? Reply
  • name99 - Friday, January 18, 2013 - link

    Read the damn article before posting. ALL those questions are answered there. Reply
  • ltcommanderdata - Friday, January 18, 2013 - link

    Apple still lists the 3TB Fusion drive as incompatible with Boot Camp "at this time". Presumably this is due to how Apple is doing the BIOS emulation with EFI 1.10 and running into the 2.2TB drive size limit. Have you heard any methods to get 3TB Fusion working with Boot Camp or heard whether Apple has a solution in the works? Reply
  • tipoo - Friday, January 18, 2013 - link

    Just curious, I think that's how Readyboost worked. You would have a flash drive immediately start sending data slowly to your computer while the hard drive took its time to seek the larger chunks of data. So I wonder if there is a large queue of data for a Fusion drive to read, it will read from both drives concurrently? Reply
  • tipoo - Friday, January 18, 2013 - link

    "In less than a year Apple could double the size of the NAND used in Fusion Drive at no real change to cost."

    But will they? If the iPods, iPhones, and iPad are any indication, they will more likely pocket the savings. Been a long time since a capacity doubling from them.
    Reply
  • name99 - Friday, January 18, 2013 - link

    Oh for fscks sake.

    The iPod nano1 came in sizes of 1, 2, 4GB
    The 2nd gen came as 2, 4, 8GB.
    3rd were 4, 8GB
    4th was 4,8, 16GB.
    All at essentially the same retail price.

    Apple has showed consistent pattern (you also see it in the shuffle, or in iPod Touch), of doubling the storage until they hit a point which seems to cover almost everyone's needs. Then there is a year or two of stasis, then a new product category which requires more storage.

    Next time you want to post blatant nonsense, try to remember that on the internet people WILL call you out when you state bullshit.
    Reply
  • tipoo - Friday, January 18, 2013 - link

    Feeling self-important today? Yes, that's what I mean, there hasn't been a doubling since the fourth generation Nano. Or does "Been a long time since a capacity doubling from them" mean "they have never ever doubled capacity" in your little world? Reply
  • tipoo - Friday, January 18, 2013 - link

    "Then there is a year or two of stasis, then a new product category which requires more storage."

    Like the iPads, which would be ideal for storing HD video if not for the exorbitant prices of higher capacities, with zero bump for the base price since the first one?
    Reply
  • tipoo - Friday, January 18, 2013 - link

    To your last point Name99, indeed they will. Reply

Log in

Don't have an account? Sign up now