如何禁用预取缓存?

我运行了一些Ubuntu服务器,这些服务器上运行着大量的django站点。 站点和httpd在启动时启动,之后(除了我进行SSH更新或使用bzr更新网站)之外没有其他任何内容可以运行。

目前超过一半的ram被分配为缓存。 这不是一个问题,因为缓存通常会使空间或一点点滑入交换(再次,这并没有真正打扰我)但我没有看到它的需要。

有没有快速禁用缓存的方法? 这更像是一个实验,所以知道如何重新打开它会很方便。

这篇由Andrea Righi撰写的博客文章表明,内核中没有配置选项,但它也勾勒出一个小的glibc包装器库,只需在每次调用open()设置O_DIRECT标志。

这应该与完全禁用读缓冲区具有相同的效果。

此外,OpenOffice wiki还有几种方法可以进行冷启动测试。 这不是你想要的,但我想我还是把它包括在内。

从2.6.16开始你可以运行:

 sync ; echo 3 | sudo tee /proc/sys/vm/drop_caches 

不,你不想。 缓存仅使用原本处于空闲状态的内存。 一旦需要它,它将被释放并被提供给想要它的进程,因此你可以认为缓存是免费的,这就是为什么free命令打印一条带有缓存因子的行。

Interesting Posts