From: "George Spelvin" <linux@horizon.com>
To: linux-ext4@vger.kernel.org
Cc: linux@horizon.com
Subject: How full should the inode table be?
Date: 11 Nov 2012 04:55:12 -0500 [thread overview]
Message-ID: <20121111095512.6396.qmail@science.horizon.com> (raw)
I have an ext4 file system which was formatted with the default number
of bytes per inode, leading to a lot of wasted inodes:
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/md0 9728762072 6902736072 2337647668 75% /data
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/md0 152619008 2012348 150606660 2% /data
Now, it turns out that I have to rebuild it with 64-bit block numbers
in order to grow it past 16 TB (wow, was *that* a nasty surprise),
and I intend to use a somewhat saner bytes/inode ratio.
(Ignoring the slight space gain, fewer inodes means faster e2fsck.)
Now, the current data, which is a decent model for future data, is
running 3512514 bytes/inode.
I could just use that, so the FS will run out of data blocks at about
the same time as it runs out of inodes, but I wonder: does the FS benefit
from more slack in inode allocation?
Given that accessing all the inodes in a directory is much more common
than scanning all the data in a directory, perhaps reducing fragmentation
in the inode table has a significant performance benefit.
I.e. perhaps an 80% full inode table causes more problems than an 80%
full disk, and I should try to leave more free space.
Allocating 2x the inodes I think I'll need doesn't cost very much,
after all. 256 additional bytes of inode per 3512514 bytes is only 0.007%
overhead, after all.
STFWing a bit, I see lots of people applying fidge factors of from 1.2
to 4 to the measured bytes/inode to get the -i argument. But I don't
see any real justification for the numbers.
Any advice?
Many thanks!
next reply other threads:[~2012-11-11 9:55 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-11 9:55 George Spelvin [this message]
2012-11-12 16:30 ` How full should the inode table be? Theodore Ts'o
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20121111095512.6396.qmail@science.horizon.com \
--to=linux@horizon.com \
--cc=linux-ext4@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.