首页 文章

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

提问于
浏览
2

我不完全确定这个问题是否更适合像Serverfault这样的东西 - 但是,因为我是程序员,而不是系统管理员,我是从程序员的角度问的 .

目前,有大量可用于缓存静态Web内容的选项 . 整个行业都使用Varnish或Squid等产品 .

但是,我知道如何缓存静态内容需要使用除Web服务器和操作系统之外的某些第三方软件 .

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

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

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

1 回答

  • 1

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

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

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

相关问题