kernel - Change the vfs.vm_cycle_point default from 23 to 40
authorMatthew Dillon <dillon@apollo.backplane.com>
Tue, 23 Mar 2010 05:44:33 +0000 (22:44 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Tue, 23 Mar 2010 05:44:33 +0000 (22:44 -0700)
commitd300946ff7ce1edbb890f3c52938535dc1949b90
tree9ef98b35052cf457052740a43f607b72c379a8cb
parentac50fd72eb2f57e10078aa8b2c177a2b0c29e774
kernel - Change the vfs.vm_cycle_point default from 23 to 40

* Large volumes of filesystem activity can cause a lot of data cycling
  to occur and we generally want this cycling to occur within the inactive
  queue where it doesn't push-out idle but strategic pages related to
  resident programs in the active queue.

  A larger vm_cycle_point value will tend to cause VM pages related to
  released buffer cache buffers to be cycled back into the inactive queue,
  leaving the pages in the active queue alone.  A smaller vm_cycle_point
  value will move the more often-used buffer cache buffer pages to the
  active queue when the buffer is released.

* Unfortunately there are typically a lot of VM pages related to resident
  programs such as xterms and databases which can remain idle for long
  periods of time.  Excessive cycling of buffer cache pages to the
  active queue can cause these long-idle pages to be pushed out to
  swap and/or freed.

  This results in an annoyance when these processes go active again,
  particular ssh, xterm, and other interactive programs.  These are
  not necessarily going to perform badly once the pages are paged back
  in, however.

* It has been found that certain large-scale scans of the filesystem such
  as the HAMMER reblocker and overnight cron jobs could push active pages
  out unnecessarily.  Raising vfs.vm_cycle_point to 40 essentially fixes
  this problem but at the cost of potentially starving the 'file cache'
  for data sets which would otherwise fit into memory (and for which the
  sysop might desire to fit into memory).  So YMMV.

Testing-by: Francois Tigeot <ftigeot@wolfpond.org>
sys/kern/vfs_bio.c