September 2, 2014

NILFS – may be not yet

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.

About Vadim Tkachenko

Vadim leads Percona's development group, which produces Percona Clould Tools, the Percona Server, Percona XraDB Cluster and Percona XtraBackup. He is an expert in solid-state storage, and has helped many hardware and software providers succeed in the MySQL market.

Comments

  1. Ufaria says:

    Hello, i have a fusion-io card to make tests. is nilfs is not ready to use.. what fs is ready to use with ssd ?

  2. Maxim says:

    Vadim, What SSDs (brand, type, etc.) and RAID type did you use for your tests?

  3. Vadim says:

    Maxim

    I mentioned that in post – Intel X25-E 32GB

  4. Maxim says:

    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.

  5. 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 ;)

Speak Your Mind

*