我有一个6GB RAM的小型VPS主机的几个网站。
最近我注意到,我的caching内存很大 – 见下面:
Cpu(s): 0.1%us, 0.1%sy, 0.0%ni, 99.1%id, 0.0%wa, 0.2%hi, 0.4%si, 0.0%st Mem: 6113256k total, 5949620k used, 163636k free, 398584k buffers Swap: 1048564k total, 104k used, 1048460k free, 3586468k cached
经过调查是否有某种方法来刷新或清除我偶然发现一个命令是:
sync; echo 3 > /proc/sys/vm/drop_caches
我读了将它添加到时间任务/作业可能是有用的。 这种方法是build议还是可能导致潜在的问题?
我唯一担心的是我在Memcached上使用了一个Magento安装程序 – 这会对它有什么负面影响吗?
我当然不是亲,所以我会非常感谢一些专家的build议。
PS:我的VPS在CentOS 5 x64上运行,我安装了WHM + NGINX。
删除caching可能会影响服务器的性能,因为在每次caching丢失之后,必须将频繁访问的数据重新读取到caching中。
没有真正的理由放弃你的caching。 对于Linux内核来说,用于caching的内存本质上是免费的,并且在需要时将被传递给应用程序。 看看这个网站了解更多信息。
关于存储在memcached中的数据 – 这可以避免丢弃page / dentries / inodecaching的影响。
如上所述,除非你有一个非常有说服力的理由,否则放弃caching没什么意义。 如果您没有看到任何性能问题,请保持原样。
如果你是好奇的types,那么你可以调整参数vm.vfs_cache_pressure。 默认值为100,这意味着内核将尝试以相当于回收交换的公平速率回收caching。 增加值会导致caching的内存更快地被回收,并且减less它将导致更快的回收交换,但请记住,这是内核对清除caching或交换的积极性。 实际结果因环境而异。
如果我没有记错的话,echo 1会清除页面caching,2会清除dentry和inodecaching。 3将清除pagecache,dentry和inodecaching。
有这种级别的cachingRAM没有真正的危害。 这是Linux所做的。
放弃caching后,你看到任何性能增益? 如果没有,那么这是不值得安排的。
作为一个方面,您可以使用vmtouch实用程序更精细地控制caching中的vmtouch 。