【问题标题】:OS and/or IIS Caching操作系统和/或 IIS 缓存
【发布时间】:2010-11-22 07:26:29
【问题描述】:

有没有一种方法可以强制在操作系统级别和/或 Web 服务器级别 (IIS) 缓存文件

我面临的问题是有许多静态文件(例如 xslt)需要一次又一次地加载 - 我想将所有这些文件加载​​到内存中,这样就不会在硬盘 I/O 上浪费时间.

(1) 我想在操作系统级别缓存它,以便 每个在我的操作系统上运行并尝试读取文件的程序 都必须从内存中读取它。我不想改变程序源代码——它必须透明地发生。例如,read("c:\abc.txt") 不能引起磁盘 I/O,它必须从内存中读取。

(2) 在 IIS 中实现类似的事情。我已经阅读了一些关于数据库查询的输出缓存的内容 - 但是如何为文件实现它?

欢迎所有建议!

谢谢

【问题讨论】:

    标签: file-io filesystems webserver performance


    【解决方案1】:

    您应该查看some tricks used by SO itself。一是为了提高效率,他们将所有静态内容移至另一个域。

    Apache 默认设置的问题(至少)是 Web 服务器会将所有请求传递到应用服务器,以查看内容是否是动态的。这对于您知道是静态的内容来说是一种巨大的浪费。

    最好为静态内容设置一个单独的域没有应用服务器。这样,静态请求就不会不必要地发送到另一层,并且 Web 服务器可以运行得更快。

    即使在没有每次调用另一个层的设置中,也有其他原因需要单独的域,正如您从该链接中看到的那样(特别是删除 cookie,这既可以减少流量,又可以提高 Internet 缓存您的数据)。

    【讨论】:

    • 分离域的做法看起来不错,如果不能得到任何其他更好的响应,我会实施它。此外,该方法仅适用于 web 请求,不适用于本地应用程序。谢谢
    猜你喜欢
    • 2013-06-26
    • 2015-05-16
    • 1970-01-01
    • 2013-01-12
    • 1970-01-01
    • 2014-05-27
    • 2012-02-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多