释放内存前

# free -m
             total       used       free     shared    buffers     cached
Mem:          7831       7704        127          0        256       6813
-/+ buffers/cache:        634       7197
Swap:         7999          0       7999


sync && echo 1 > /proc/sys/vm/drop_caches
sync && echo 2 > /proc/sys/vm/drop_caches
sync && echo 3 > /proc/sys/vm/drop_caches


Writing to this will cause the kernel to drop clean caches, dentries and inodes from memory, causing that memory to become free.

To free pagecache:

* echo 1 > /proc/sys/vm/drop_caches

To free dentries and inodes:

* echo 2 > /proc/sys/vm/drop_caches

To free pagecache, dentries and inodes:

* echo 3 > /proc/sys/vm/drop_caches

As this is a non-destructive operation, and dirty objects are notfreeable, the user should run "sync" first in order to make sure allcached objects are freed.

This tunable was added in 2.6.16.




释放内存后

# free -m
             total       used       free     shared    buffers     cached
Mem:          7831        365       7466          0          0         18
-/+ buffers/cache:        346       7485
Swap:         7999          0       7999