DragonFly BSD
DragonFly commits List (threaded) for 2013-02
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

git: kernel - Fix performance issue due to buffer fragmentation


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Thu, 21 Feb 2013 22:41:05 -0800 (PST)

commit 923b8527bc9e4b1e308949f0d95bc09a87798772
Author: Matthew Dillon <dillon@apollo.backplane.com>
Date:   Thu Feb 21 22:32:11 2013 -0800

    kernel - Fix performance issue due to buffer fragmentation
    
    * Systems with a lot of memory have very large buffer pools.  Defragmenting
      these pools can be expensive.  Often the buffer_map becomes full well
      before the bufspace actually hits its limits.  Filesystems such as HAMMER
      which use large buffer sizes (64K) are more likely to cause the problem.
    
      The result is extremely bad I/O performance for data not in the buffer
      cache which requires a new buffer to be instantiated.
    
    * To solve this we double the size of the buffer_map's KVA area on
      64-bit systems while leaving the maximum buffer space allowed the
      same.  The larger virtual space greatly reduces KVA allocation
      failures due to fragmentation.
    
    * This solves significant performance issues on monster with its 64G
      of ram, but should improve performance on any 64-bit system by
      reducing buffer cache defrag iterations.
    
    * Also fix a possible intermediate value overflow in vlrureclaim().

Summary of changes:
 sys/kern/vfs_mount.c                     |  8 ++++++--
 sys/platform/pc64/x86_64/machdep.c       | 10 ++++++++--
 sys/platform/vkernel64/x86_64/autoconf.c |  4 ++--
 3 files changed, 16 insertions(+), 6 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/923b8527bc9e4b1e308949f0d95bc09a87798772


-- 
DragonFly BSD source repository



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]