首先,CentOS是一个
Linux操作系统.
Linux与FreeBSD完全不同(除了从BSD借来的Linux,制作完整的操作系统,还没有用自己的代码替换).
你真的不需要释放缓存的内存,可能你不需要在你的Cent盒子上,但它确实取决于你在它上面运行的东西.当你有一个非常具体和充分的理由时,你应该只讨论内存管理.
您希望在生产盒上执行此操作的唯一原因是,如果您有一个应用程序,那么它的内存使用量就是可用内存量.我不知道有任何* nix程序可以做到这一点,但它们可能就在那里.即使是这种情况,您也应该对系统缓存使用智能内存限制,而不是手动或定期刷新它们.
刷新缓存的唯一其他常见原因是用于基准测试和测试目的.
如果上述两个中的一个不适用,请不要刷新缓存.
更新:
除了下面的评论之外,让我通过简单的测试来确定性能差异.
dd if=/dev/zero of=/path/to/test.1g bs=1m count=1024
1073741824 bytes transferred in 20.998713 secs (51133697 bytes/sec)
dd if=/path/to/test.1g of=/dev/null bs=1m
1073741824 bytes transferred in 4.496601 secs (238789654 bytes/sec)
dd if=/path/to/test.1g of=/dev/null bs=1m
1073741824 bytes transferred in 1.071374 secs (1002210138 bytes/sec)
第一次读取测试文件时没有缓存;第二次它已经在缓存中,因此读取操作完成了四倍.在典型的服务器中,90%的读取是磁盘上1%的文件/数据.如果1%的大部分都可以保留在缓存内存中,则磁盘读取速度通常会快4倍(至少在我的服务器上).