[issue884] Performance/memory problems under filesystem IO load
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=
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.
<dillon at backplane.com>
More information about the Bugs