删除linux的cachingram

我有一个networking服务器,有8GB的RAM,并运行一个非常密集的PHP网站(1网站),文件操作,graphics,电子邮件,论坛,你的名字。 这个环境远非静态,这导致我相信从ram中caching任何东西可以获得的东西很less,因为几乎每个对服务器的请求都会创build新的或更新的页面。 而且很多caching都是在客户端完成的,所以当涉及到图像,javascript,css时,我们有大量的304请求。

此外,我确实有语言文件写入服务器上的平面文件,cachingRAM肯定是好的,而不是从磁盘读取。 但只有less数这样的文件。

在大约两周的时间里,我从98%的免费公羊变成了4%的免费公羊。 这发生在我们也推送几个大的svn更新到服务器的时间。

我的问题是,如果我定期使用以下命令清除caching(我知道Linus Torvalds对caching的感受),是否可以更好地调整服务器:

sync; echo 3 > /proc/sys/vm/drop_caches 

或者我会更好的编辑下面的文件:

 /proc/sys/vm/swappiness 

如果我将30的缺省值replace为60,那么我应该更less地进行交换,并且更多地重用陈旧的高速caching。

看到所有使用第一条命令释放的caching确实感觉很好,但是如果我告诉你这对桌面环境很好,我会对你说谎。 但是,像我上面描述的一个Web服务器呢? 思考?

编辑:我知道,系统将获得内存,因为它需要从caching中的内存,但感谢指出,我们的澄清。 当大多数服务器内存存储在caching中的时候,Apache的速度会变慢吗? 这完全是一个不同的问题吗?

清除caching会阻碍性能,不起作用。 如果内存需要其他的东西,那么所有你正在做的事情就是在你执行清除操作之后,暂时减less高速caching命中率。

如果caching中的数据非常过时(即在非正常操作期间被caching),那么将根据需要replace为“更新”的数据,而无需人为地将其清除。

运行sync; echo 3 > /proc/sys/vm/drop_caches的唯一原因sync; echo 3 > /proc/sys/vm/drop_caches sync; echo 3 > /proc/sys/vm/drop_caches正常情况下,如果您要尝试执行一些I / O性能testing,并希望启动一个已知状态(在运行之间运行caching下降以减less由于caching在每次运行时被不同地启动)。

内核有时会交换几页,即使有足够的内存可以从caching/缓冲区中获得回报,而调整swappiness设置可以停止,如果你发现它是你的服务器的问题。 您可能会从中看到一些小的好处,但可能通过人为地清除caching+缓冲区而导致临时性能下降