Web服务器缓存 - 内存与操作系统

时间:2014-06-24 21:54:30

标签: apache web-services caching operating-system varnish

我不完全确定这个问题是否更适合像Serverfault这样的问题 - 但是,既然我是程序员,而不是系统管理员,那我就是从程序员。

现在有大量可用于缓存静态Web内容的选项。像整个行业一样使用Varnish或Squid等东西。

但是,我在这里有些困惑。从理论的角度来看,我不知道 static 内容的缓存如何需要使用除Web服务器和操作系统之外的某些第三方软件。

动态内容(例如,昂贵的PHP脚本计算的结果或某些东西),当然可以从一个好的缓存系统中受益。

但是对于静态内容,我们通过在内存中缓存资源获得了什么?操作系统页面缓存已经提供与Varnish或Squid等专用缓存系统相同的好处吗?或者我错过了一些好处?

实际上,

Varnish使用mmap将数据存储在虚拟内存中 - 并让操作系统处理页面交换。那么,这与将缓存资源保存到磁盘并使用fread打开它们的方式究竟有何不同?

1 个答案:

答案 0 :(得分:1)

你是对的。对于静态资源,内存也可以用于页面缓存而不是使用Varnish。

链接缓存(varnish,pagecache)用于竞争相同资源(服务器内存)的相同内容是愚蠢的。

如果您还有一些动态内容,由于操作原因,您可以选择合并并提供缓存中的所有内容。例如,从单个软件堆栈收集访问日志和统计信息比两个更简单。这也适用于员工培训和安全补丁等。