gpt4 book ai didi

webserver - 在减少网络服务器 inode 号查找的磁盘访问次数方面有什么优化吗?

转载 作者:行者123 更新时间:2023-12-02 05:03:53 24 4
gpt4 key购买 nike

Web 服务器通常有一个文档根目录,表示通过 Web 可见的文件系统子树。因此,例如,如果文档根目录是:/home/foouser/public_html/,那么网络服务器将映射一个对 http://www.foo.com/pics/foo.jpg 的请求。到/home/foouser/public_html/pics/foo.jpg。这导致一系列磁盘请求以获取 foo.jpg 的 inode 号。

网络服务器是否做了任何优化以减少磁盘访问次数(或者)服务器管理员的角色是将文档根设置为尽可能靠近“/”,以减少磁盘访问次数访问文件名到 inode 号的翻译?

最佳答案

我知道这不是您问题的直接答案,但通过设置缓存策略,您可以大大减少磁盘读取。特别是如果您的静态内容未托管在您的服务器上。

选项:

  • 在 CDN 上托管静态内容:
    • 优点:将所有负载卸载到其他人的网络上。费用?
    • 缺点:可能缺乏控制。费用?
  • 使用 Contendo/Akamai,它也是 CDN,但有一些不同。
    • 优点:托管您的内容,但在第一次读取后,cdn 将根据您随内容发送的 header (静态或非静态)处理缓存
    • 缺点:有时 header 管理起来真的很烦人。当您想替换旧内容时,缓存破坏(破坏您自己的缓存)可能会很烦人。
  • 在本地缓存内容。例如,如果您正在发出数据库请求,则可以缓存该请求。下次运行代码时,首先检查内存缓存(而不是立即发出数据库请求)。您可以缓存整个页面,然后在应用程序 Controller /路由级别检查是否存在页面/ Assets 的缓存版本并提供它。
    • 优点:很多控制。您几乎可以缓存任何内容。
    • 缺点:为每件小事设置缓存需要大量工作。您需要为网站的每个部分制定策略。

我的建议是先将您的 Assets 转移到 AmazonS3 或 Rackspace 等。 Joyent 也有这方面的东西。然后,您可以为 s3 启用 cloudfront,这将打开 cdn,它在各个区域缓存内容。这是一个非常便宜的解决方案(取决于您拥有的文件数量)。

您也可以走 contendo 路线。

应用程序端路由的缓存需要大量工作,完全取决于您的服务器/语言/数据库/配置。

关于webserver - 在减少网络服务器 inode 号查找的磁盘访问次数方面有什么优化吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13792301/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com