天天看点

linux关闭磁盘缓存,在linux上禁用apache2的所有磁盘缓存

出于基准测试目的,我想强制Apache 2从磁盘加载每个请求的文件,而不是从内存中的缓存加载它.从我所读到的做同步后跟

echo 3 > /proc/sys/vm/drop_caches

让我放弃linux的缓存.然后,不会从linux的缓存中提供对特定文件的后续请求,但是将再次从linux的缓存中提供对同一文件的进一步请求.这是因为/ proc / sys / vm / drop_caches不会禁用缓存,它只会丢弃当前缓存的内容.我可能会在每个请求之前删除缓存,但我更喜欢另一个解决方案.我还能做些什么来确保apache从磁盘加载每个请求的文件吗?

为什么我要这样做:我知道在正常操作中启用了缓存.但是服务器不提供小的和频繁访问的文件,例如html页面,小图像等.相反,它提供的文件大多数是几兆字节,来自一大堆文件.这些文件的访问非常统一,因此很少访问每个文件.因此,在正常操作中,我希望大多数访问不会导致缓存命中,但需要从磁盘加载文件.我有几个示例文件,我想使用apache的ab基准测试来测量服务器每秒可以处理的事务数.不幸的是,我相信我得到的结果因缓存而过于乐观.因此,我想禁用Linux的磁盘缓存,Apache可能会自行执行任何缓存.

更新:the answer given so far告诉我如何禁用Apache自己的缓存,但我仍然想知道是否有办法禁用Linux内核完成的缓存.