Monday, April 23, 2012

Linux Stop Flushing of mmaped Pages To Disk

How can I stop the flushing of mmaped pages to disk in Linux?

The /proc/sys/vm/flush_mmap_pages Linux kernel parameter specifies whether or not memory-mapped file pages should be flushed to disk by kupdate while the memory map is active. Valid values for this parameter are 1 (enable memory mapping by kupdate) and 0 (disable memory mapping by kupdate). The default value for this parameter is 1. To configure this parameter, use echo [1 or 0] /proc/sys/vm/flush_mmap_pages. Setting this parameter to 0 does the following (quoting from the official documentation):
  1. kupdate will not flush dirty memory-mapped file pages as long as the memory map is active.
  2. All dirty file pages will be asynchronously flushed to disk only as soon as the memory map is deactivated.
If you set /proc/sys/vm/flush_mmap_pages to 0, it is advisable that you use another application to manually sync memory-mapped pages to disk. So to stop the flushing of mmaped pages to disk in Linux, enter:
 
sysctl -w /proc/sys/vm/flush_mmap_pages=0
 
All dirty file pages will be asynchronously flushed to disk only as soon as the memory map is deactivated. To enable memory mapping again, enter:
 
sysctl -w /proc/sys/vm/flush_mmap_pages=1
 
Add the following line to /etc/sysctl.conf:
echo 0 >/proc/sys/vm/flush_mmap_pages

No comments:

Post a Comment