清除 linux服务器的buffer和cache

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。

先执行以下free -m,查看服务器的内存缓存使用情况


执行sysctl -w vm.drop_caches=3,清空缓存。

执行free -m查看清除后的情况,可以看到缓存已经释放。free增加!


载自:http://jingyan.baidu.com/article/9158e0006e20d8a254122816.html

你可能感兴趣的:(Linux,系统编程)