Thank you very much for yet another very interesting article on this topic!
One question: Since the SD card you measured can support only 5 erase blocks being written concurrently, did you mount f2fs using the "active_logs=4" option? With the default of 6 active logs plus another erase block being used for global metadata, you might otherwise get into a situation where you alternate between 7 blocks and the card needs to constantly garbage-collect.
Where there are 3 numbers they are min/max/mean of 10 runs.
Reading small files seems faster, but the numbers were already noisy - about half the individual results were within 5 seconds of the minimum. which is much the same in both cases.
The write-large-files test is quite a bit slower. I probably need to do a couple more runs before I know what that means.
So it looks like I wasn't hitting the possible too-many-erase-blocks-open case in this test.
JFFS2, UBIFS, and the growth of flash storage
Posted Dec 12, 2012 21:14 UTC (Wed) by arnd (subscriber, #8866)
[Link]
Thanks for the new data point. Running with active_logs=4 obviously adds some overhead in the file system because the f2fs garbage collection becomes less efficient and it has to rewrite stuff more. It's not clear whether we get into the case I described but I think you have shown that the extra overhead in the file system is larger than what we save in the device.
I agree on the read numbers, they are probably just in the noise because in theory there is no difference at all based on the mount option.
One thing that would make a very significant difference though is whether the file system is aged and how full it is, but that is true for all of the tests you did.