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

标签 apache web-services caching operating-system varnish

我不确定这个问题是否更适合Serverfault之类的问题-但是,由于我是程序员,而不是系统管理员,所以我是从程序员的角度出发。

如今,有大量的选项可用于缓存静态Web内容。整个行业都使用诸如 Varnish 或鱿鱼之类的东西。

但是,我在这里有些困惑。从理论上讲,我看不到缓存静态内容如何需要使用Web服务器和OS之外的某些第三方软件。

动态内容(例如,昂贵的PHP脚本计算或诸如此类的结果)当然可以从良好的缓存系统中受益。

但是对于静态内容,通过在内存中缓存资源可以得到什么呢?操作系统页面缓存是否已提供与Varnish或Squid等专用缓存系统相同的优势?还是我错过了一些好处?

实际上,Varnish使用mmap将数据存储在虚拟内存中,并让OS处理页面交换。因此,这与将缓存的资源仅保存到磁盘并使用fread打开它们有什么不同?

最佳答案

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

竞争相同资源(服务器内存)的相同内容的链接缓存( Varnish ,页面缓存)很愚蠢。

如果您还具有一些动态内容,则出于操作原因,您可以选择合并并提供缓存中的所有内容。例如,从一个软件堆栈(而不是两个)中收集访问日志和统计信息要简单得多。这也适用于员工培训和安全修补之类的事情。

关于apache - Web服务器缓存-内存与操作系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24396979/

相关文章:

java - 如何在J2ME中读取和解析PHP对象

java - Java 线程中的实例变量(对象,非原始变量)缓存

javascript - 在 Firebase 上部署网站后,脚本不会更改。同样的错误仍然存​​在

apache - 如何通过 http 克隆一个包含 subrepos 的 mercurial repo 而不必对每个 repo 进行身份验证?

java - 安装/运行 apache tomcat

apache - 如何分离 apache 和 tomcat 的 J2EE Web 应用程序

java - Avro - 反序列化 POJO

无法理解 WCF MustUnderstand header

java - Imcache Spring 配置

apache - Tomcat 的 URL 重写不起作用