[issue884] Performance/memory problems under filesystem IO load

Matthew Dillon dillon at apollo.backplane.com
Wed Dec 19 14:13:51 PST 2007


:I can confirm that creating a 4MB file consumes 1026 wired pages.
:
:So either this is a) insane b) a bug or c) a counting issue, where the
:buffer cache gets placed with the wired pages.

    They're just wired because they're in the buffer cache.  The real issue
    here is buffer cache management, that's all.

:>> I traced this with gdb.  The additional wired page is part of a struct=
:
:>> buf (b_xio) instance tied to the ./file vnode.   I reckon this vnode
:>> stays cached (namecache?) when the dd process ends and deleting ./file=
:
:>> forces destruction of the vnode.
:
:I didn't yet look at the code, but does this mean that additionally to
:the buffer cache data, this b_xio is kept as well, keeping the *same* dat=
:a?
:
:cheers
:  simon

    No, the b_xio is part of the struct buf.  The pages are wired only once.

    This is really just a buffer cache management issue.  There's no reason
    the pages have to remain wired that long... the related buffer can
    certainly be destroyed after having been flushed to disk under heavy-load
    situations while still leaving the backing VM pages intact in the VM
    page cache.  I would focus any fixes in that area.

					-Matt
					Matthew Dillon 
					<dillon at backplane.com>





More information about the Bugs mailing list