分类: LINUX
2013-01-04 16:04:34
用dd读u盘时,发现有时速度很快,大于200M/s,而从bushound上看不出读动作,说明是从缓存里读的数据。
在读之前执行下 echo 1 > /proc/sys/vm/drop_caches 就正常了。
关于drop_caches 的解释:
Kernels 2.6.16 and newer provide a mechanism to have the kernel drop the page cache and/or inode and dentry caches on command, which can help free up a lot of memory. Now you can throw away that script that allocated a ton of memory just to get rid of the cache...
To use /proc/sys/vm/drop_caches , just echo a number to it.
To free pagecache:
# echo 1 > /proc/sys/vm/drop_cachesTo free dentries and inodes:
# echo 2 > /proc/sys/vm/drop_cachesTo free pagecache, dentries and inodes:
echo 3 > /proc/sys/vm/drop_cachesThis is a non-destructive operation and will only free things that are completely unused. Dirty objects will continue to be in use until written out to disk and are not freeable. If you run "sync" first to flush them out to disk, these drop operations will tend to free more memory.