linux 下用 write() 写文件,特别大文件,会导致系统内存很快被耗尽,写一个1G的大文件,系统 内存很快只剩下70M 左右空间,即使文件已经被关闭,缓存让存在,怎么解决?
可以调用linux的系统命令 清除 buffer cache ,具体命令如下:
sysctl -w vm.drop_caches=3
注意事项
-
sysctl -w vm.drop_caches=3为清空所有缓存,包括pagecache、dentries 和 inodes,sysctl -w vm.drop_caches=2为清空dentries 和 inodes,sysctl -w vm.drop_caches=1为清空pagecache。
执行sysctl -w vm.drop_caches=3,清空缓存。
执行free -m查看清除后的情况,可以看到缓存已经释放。free增加!
载自:http://jingyan.baidu.com/article/9158e0006e20d8a254122816.html