我知道这不是您问题的直接答案,但是通过设置缓存策略,您可以大大减少磁盘读取。特别是如果您的静态内容未托管在您的服务器上。
选项:
- 在 CDN 上托管静态内容:
- 优点:将所有负载卸载到其他人的网络上。成本?
- 缺点:可能控制较少。成本?
- 使用 Contendo/Akamai,它也是一个 CDN,但有一些不同。
- 优点:托管您的内容,但在第一次阅读后,cdn 将根据您随内容发送的标题(静态或非静态)处理缓存
- 缺点:有时标题管理起来真的很烦人。当您想要替换旧内容时,缓存破坏(破坏您自己的缓存)可能会很烦人。
- 在本地缓存东西。例如,如果您正在发出数据库请求,您可以缓存该请求。下次运行您的代码时,首先检查您的内存缓存(而不是立即发出 db 请求)。您可以缓存整个页面,然后在应用程序控制器/路由级别检查是否存在页面/资产的缓存版本并提供服务。
- 优点:控制力强。你几乎可以缓存任何东西。
- 缺点:为每件小事设置缓存需要做大量工作。您需要为网站的每个部分制定策略。
我的建议是首先将您的资产转移到 AmazonS3 或 Rackspace 之类的。Joyent 也有这方面的东西。然后,您可以为 s3 启用 cloudfront,这将打开 cdn,它在各个区域缓存内容。这是一个非常便宜的解决方案(取决于您拥有的文件数量)。
你也可以走竞争路线。
应用程序端路由上的缓存需要相当多的工作,并且完全取决于您的服务器/语言/数据库/配置。