Re: Freeing vnodes.

From: Stephan Uphoff (ups_at_tree.com)
Date: 03/15/05

  • Next message: Jeff Roberson: "Re: Freeing vnodes."
    To: Jeff Roberson <jroberson@chesapeake.net>
    Date: Mon, 14 Mar 2005 22:15:54 -0500
    
    

    On Mon, 2005-03-14 at 21:38, Jeff Roberson wrote:
    > I have a patch at http://www.chesapeake.net/~jroberson/freevnodes.diff
    > that allows us to start reclaiming vnodes from the free list and release
    > their memory. It also changes the semantics of wantfreevnodes, and makes
    > getnewvnode() much prettier.
    >
    > The changes attempt to keep some number of vnodes, currently 2.5% of
    > desiredvnodes, that are free in memory. Free vnodes are vnodes which
    > have no references or pages in memory. For example, if an application
    > simply stat's a vnode, it will end up on the free list at the end of the
    > operation. The algorithm that is currently in place will immediately
    > recycle these vnodes once there is enough pressure, which will cause us to
    > do a full lookup and reread the inode, etc. as soon as it is stat'd again.
    >
    > This also removes the recycling from the getnewvnode() path. Instead, it
    > is done by a new helper function that is called from vnlru_proc(). This
    > function just frees vnodes from the head of the list until we reach our
    > wantfreevnodes target.
    >
    > I haven't perf tested this yet, but I have a box that is doing a
    > buildworld with a fairly constant freevnodes count which shows that vnodes
    > are actually being uma_zfree'd.
    >
    > Comments? Anyone willing to do some perf tests for me?
    >
    > Thanks,
    > Jeff

    Just looked at the raw diff and might have missed it - how are the
    parent directory "name" cache entries ( vnode fields v_dd, v_ddid)
    handled?

    Thanks,
    Stephan

    _______________________________________________
    freebsd-arch@freebsd.org mailing list
    http://lists.freebsd.org/mailman/listinfo/freebsd-arch
    To unsubscribe, send any mail to "freebsd-arch-unsubscribe@freebsd.org"


  • Next message: Jeff Roberson: "Re: Freeing vnodes."

    Relevant Pages

    • Re: 5.x w/auto-maxusers has insane kern.maxvnodes
      ... The target number of vnodes was set to ... I ended up saving a good 100MB of memory just ... > switching from 4.x and seeing paging increase substantially. ...
      (freebsd-current)
    • Re: 5.x w/auto-maxusers has insane kern.maxvnodes
      ... The target number of vnodes was set to ... the default number of vnodes wasn't enough, and caching them in VMIO ... pages didn't work for some reason (either because I was testing a ... >> easy to determine other than the fact that I saved so much memory even ...
      (freebsd-current)
    • Re: Call for PRs: nullfs
      ... One is the direct overhead associated with stacking ... the maxvnodes bound, which causes vnodes to be recycled. ... "memory is no object" -- on other ... rate and disk I/O transaction rates during the benchmark. ...
      (freebsd-current)
    • Freeing vnodes.
      ... that allows us to start reclaiming vnodes from the free list and release ... that are free in memory. ... recycle these vnodes once there is enough pressure, ... is done by a new helper function that is called from vnlru_proc. ...
      (freebsd-arch)
    • Re: Freeing vnodes.
      ... On Mon, 14 Mar 2005, Stephan Uphoff wrote: ... >> that allows us to start reclaiming vnodes from the free list and release ... that are free in memory. ... >> recycle these vnodes once there is enough pressure, ...
      (freebsd-arch)