我不完全确定这个问题是否更适合像Serverfault这样的问题 - 但是,既然我是程序员,而不是系统管理员,那我就是从程序员。
现在有大量可用于缓存静态Web内容的选项。像整个行业一样使用Varnish或Squid等东西。
但是,我在这里有些困惑。从理论的角度来看,我不知道 static 内容的缓存如何需要使用除Web服务器和操作系统之外的某些第三方软件。
动态内容(例如,昂贵的PHP脚本计算的结果或某些东西),当然可以从一个好的缓存系统中受益。
但是对于静态内容,我们通过在内存中缓存资源获得了什么?操作系统页面缓存已经提供与Varnish或Squid等专用缓存系统相同的好处吗?或者我错过了一些好处?
实际上, Varnish使用mmap
将数据存储在虚拟内存中 - 并让操作系统处理页面交换。那么,这与将缓存资源保存到磁盘并使用fread
打开它们的方式究竟有何不同?
答案 0 :(得分:1)
你是对的。对于静态资源,内存也可以用于页面缓存而不是使用Varnish。
链接缓存(varnish,pagecache)用于竞争相同资源(服务器内存)的相同内容是愚蠢的。
如果您还有一些动态内容,由于操作原因,您可以选择合并并提供缓存中的所有内容。例如,从单个软件堆栈收集访问日志和统计信息比两个更简单。这也适用于员工培训和安全补丁等。