EmergencyEMERGENCY? Get 24/7 Help Now!

NILFS – may be not yet

 | August 8, 2009 |  Posted In: Benchmarks, Hardware and Storage


Inspired by NILFS: A File System to Make SSDs Scream and some customers asked if they should try NILFS on their SSD disks I decided to run quick tests to see how it performs.

Installation on our Ubuntu 8.10 with SSD disk (Intel X25-E, 32GB) was pretty plain and I got partition with NILFS without problem. After that I run script for sysbench fileio:

While tests with 256M run fine, benchmark failed to create 16GB file with out of space error, and partition shows:

so it seems partition filled all space by checkpoints, which I calculated
145314 checkpoints after 5 mins benchmarks, which for my taste is quite a lot …

I tried to remove all checkpoints, umount / mount all partitions and still partition was filled by 99%. However after 30 mins it was:

seems some background garbage collector frees space.

I looked into

and NILFS docs, but I did not get inspiration what I can change to run benchmarks without problems.

Vadim Tkachenko

Vadim Tkachenko co-founded Percona in 2006 and serves as its Chief Technology Officer. Vadim leads Percona Labs, which focuses on technology research and performance evaluations of Percona’s and third-party products. Percona Labs designs no-gimmick tests of hardware, filesystems, storage engines, and databases that surpass the standard performance and functionality scenario benchmarks.

Vadim’s expertise in LAMP performance and multi-threaded programming help optimize MySQL and InnoDB internals to take full advantage of modern hardware. Oracle Corporation and its predecessors have incorporated Vadim’s source code patches into the mainstream MySQL and InnoDB products.

He also co-authored the book High Performance MySQL: Optimization, Backups, and Replication 3rd Edition.


  • Ah… Sorry, Vadim, sloppy me. Your result is an interesting one but kinda expected given the state of affairs with NILFS. I was wondering if you’ve done similar benchmarks with ext4, xfs. And whether the particular ssd brand is more “mysql/innodb friendly” given that each manufacturer implements own algorithms of ssd memory management.

  • I seem to remember some caveats about the cleaner in NILFS…. like it wasn’t written yet or isn’t always scheduled.

    There are some ‘hacks’ like this but I’m really just convinced that we need to start designing databases from the ground up to think like flash.

    InnoDB is designed to think like HDDs.

    If you want to get the full performance you need to think like flash. And I don’t mean SSD. I mean flash.

    Even FusionIO is too high level I think…

    There are just too many levels of indirection here now and I think they jut need to be removed.

    Of course, I don’t have the time to write the system so I suspect it will take a few more years 😉

Leave a Reply