Rik van Riel wrote:
> On Thu, 19 Apr 2001, Daniel Phillips wrote:
> > Jan Harkes wrote:
> > > On Thu, Apr 19, 2001 at 02:27:48AM +0200, Daniel Phillips wrote:
> > > > more memory.  If you have enough memory, the inode cache won't thrash,
> > > > and even when it does, it does so gracefully - performance falls off
> > > > nice and slowly.  For example, 250 Meg of inode cache will handle 2
> > > > million inodes with no thrashing at all.
> > >
> > > What inode cache are you talking about? According to the slabinfo output
> > > on my machine every inode takes up 480 bytes in the inode_cache slab. So
> > > 250MB is only able to hold about half a million inodes in memory.
> >
> > Sorry, I was a little loose with terminology there.  I should have
> > said "inode blocks in cache".  The inode cache is related.  When an
> > Ext2 inode is pushed out of the inode cache it gets transfered to a
> > dirty block in memory, where it shrinks to 128 bytes and shares the
> > block with 31 other inodes.  These blocks are in the buffer cache, and
> > this is the cache I'm talking about.
> 
> Hmmm, considering this, it may be wise to limit the amount of
> inodes in the inode cache to, say, 10% of RAM ... because we
> can cache MORE inodes if we store them in the buffer cache
> instead!

Yes, one struct inode is worth 3.5 buffer cache inodes.  The expense of
converting the inode via read_inode and update_inode is pretty small.  To
come up with a balancing formula, we should consider:

  - Ratio between struct inode size and inode disk image size
  - CPU cost of converting an inode disk image to struct inode
  - CPU cost of converting a struct inode to a disk image
  - average time to read, write a block of N inodes.
  - Load on memory
  - Bandwidth of disk, heaviness of disk traffic
  - Other factors I forgot

Or we could just set the inode cache size lower and see what happens. :-)

--
Daniel
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to