Thread (16 messages) 16 messages, 3 authors, 2016-10-18

Re: [bcachefs] time of mounting filesystem with high number of dirs

From: Kent Overstreet <hidden>
Date: 2016-09-07 21:12:16

On Wed, Sep 07, 2016 at 10:09:58PM +0200, Marcin wrote:
Hi!
I'm aware that performance doesn't have high priority, it's something for
TODO.
I created bcachefs on ~10GB partition, copied some files and next I created
huge number of directories and files. Problem is in the total time needed
for mounting filesystem.
# time mount -t bcache /dev/sde1 /mnt/test/

real    12m20.880s
user    0m0.000s
sys     1m18.270s
Oh damn, guess it's time to start working on mount time... I knew this was going
to be an issue sooner or later, but 12 minutes is impressive :)
I looked at iostat, mounting needs to read from disk 10083588 "kB_read".
Device has size 10485760kB, so it looks that it reads almost the same amount
of data as partition size. Maybe mount time can be lower? Maybe there can be
less reads or reads could be more sequential?
So, right now we're checking i_nlinks on every mount - mainly the dirents
implementation predates the transactional machinery we have now. That's almost
definitely what's taking so long, but I'll send you a patch to confirm later.

It shouldn't take that much work to make the relevant filesystem code
transactional, I'll bump that up on the todo list...
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help