如何优化 IIS 网站服务器性能?

306 阅读6分钟

核心优化方法概览:

    1. 启用 HTTP Keep-Alive (保持连接): 提升约 15~20% 速度。
    1. 关闭网站访问日志: 提升约 5~8% 速度。
    1. 避免使用“高(独立)”应用模式: 避免损失约 20% 速度。
    1. 增加 ASP 脚本缓存数量: 让动态网页响应更快。
    1. 避免使用 CGI 程序: 选择更高效的替代方案。
    1. 增加 CPU 数量 (IIS 5.0 有效): 获得接近线性的性能提升。
    1. 关闭 ASP 调试功能: 释放宝贵的 CPU 资源。
    1. 启用静态文件 HTTP 压缩: 减少约 20% 的网页传输量。

1cb238fee69b45218ea9ace2b701c03a~tplv-tb4s082cfz-aigc_resize_2400_2400.webp

详细说明与操作指南:

1. 启用 HTTP Keep-Alive (保持连接) - 让连接“不断线”

原理: 想象每次你浏览网站上的不同页面,服务器都要和你“重新握手”建立新连接,这很费时间。启用 Keep-Alive 就像让服务器和你的浏览器保持“通话”状态,浏览同一个网站的不同页面时,不需要反复“握手”,大大减少了等待时间。直到你关闭浏览器,“通话”才结束。 效果: 大约能提速 15-20%。 如何设置 (基于 IIS 管理器通用界面)

    1. 打开 “Internet 信息服务 (IIS) 管理器” (在 Windows 开始菜单搜索即可找到)。
    1. 在左侧连接树中,选择你要优化的对象:
    1. 整个服务器 (最顶层的计算机名):影响所有网站。
    1. 单个网站:只影响这个网站。
    1. 在中间的功能视图或右侧“操作”窗格中,找到并点击 “高级设置”。
    1. 在弹出的“高级设置”窗口中,找到 “连接” 或 “HTTP 设置” 相关的部分。
    1. 将 “启用 HTTP Keep-Alive” 或 “保持 HTTP 连接” 选项设置为 True。
    1. 点击 “确定” 保存。 (小提示:不同 IIS 版本界面位置略有差异,找“连接”、“HTTP”或“行为”相关设置即可)

2. 关闭网站访问日志 - 减少“写日记”的开销

原理: IIS 默认会把谁访问了网站、访问了什么页面等信息记录下来(就像写日记)。虽然这对分析有用,但每次访问都要“写日记”会消耗服务器的磁盘读写能力。关闭日志,就省下了这部分力气,服务器能更快地处理实际的网页请求。 效果: 大约能提速 5-8%。 如何关闭

    1. 打开 IIS 管理器。
    1. 在左侧连接树中,选择目标对象(服务器、网站或应用)。
    1. 在中间功能视图中,找到并双击 “日志” 图标。
    1. 在日志设置页面,直接取消勾选 “启用日志” 选项。
    1. 点击右侧“操作”窗格中的 “应用” 保存设置。

3. 避免使用“高(独立)”应用模式 - 让应用“共享房间”

原理: IIS 可以给每个网站或应用分配一个“独立房间”(进程)运行,这样如果一个应用出问题崩溃,不会影响其他应用或服务器本身(安全性好)。但创建和管理这么多“独立房间”开销很大!让应用在“共享房间”(IIS 主进程或共享的工作进程池)里运行,管理起来就轻松多了,速度自然更快。代价是如果一个应用崩溃,可能会影响同“房间”的其他应用。 效果: 使用“独立”模式会比“共享”模式慢大约 20%。 如何设置 (使用共享模式)

    1. 打开 IIS 管理器。
    1. 在左侧连接树中,选择目标网站或应用的起始目录。
    1. 在右侧“操作”窗格中,点击 “基本设置...”。
    1. 在“编辑网站”或“编辑应用程序”窗口中,点击 “应用程序池” 旁边的选择按钮。
    1. 在弹出的“选择应用程序池”窗口中:
    • 选择一个预先存在的、共享的应用程序池 (如 DefaultAppPool)。这些池通常配置为多个应用共享工作进程。
    • 避免选择标记为“高隔离”或为单一应用专用的池。
    1. 点击 “确定” 保存更改。(核心思想:让多个网站/应用共享同一个工作进程池,减少独立进程的开销)

4. 增加 ASP 脚本缓存数量 - 给“常用工具”准备更多“快捷方式”

原理: IIS 执行 ASP 网页(.asp 文件)时,需要先把代码“翻译”(编译)成服务器能懂的语言。第一次访问某个 ASP 页面时,这个“翻译”过程比较慢。IIS 很聪明,它会把“翻译”好的结果保存在内存(缓存)里。下次再访问同一个页面,就直接用内存里的“翻译稿”,速度快多了!增加缓存数量,意味着 IIS 能在内存里保存更多页面的“翻译稿”,用户访问时就能更快地找到现成的结果,尤其适合访问量大的网站。 效果: 显著提高 ASP 页面的响应速度。 如何设置 (此设置在 IIS 5.0/6.0 较常见,新版本机制不同)

    1. 打开 IIS 管理器。
    1. 在左侧连接树中,选择服务器节点 (最顶层)。
    1. 在中间功能视图中,找到并打开 “ASP” 功能。
    1. 展开 “缓存属性” 部分。
    1. 找到 “脚本文件缓存数量” (scriptFileCacheSize) 选项。
    1. 增大这个数值 (例如从默认的 500 改为 1000 或更高,根据服务器内存大小调整)。数值越大,能缓存的 ASP 页面越多。
    1. 点击右侧“操作”窗格中的 “应用” 保存。(注意:新版本 IIS (7+) 使用不同的缓存机制,此设置可能不适用或位置不同,需查对应版本文档)

5. 避免使用 CGI 程序 - 选择更高效的“服务员”

原理: CGI 是一种很老的让网页和程序交互的方式。它的最大问题是:每次有用户请求,服务器都要“雇佣”一个全新的“临时工”(进程)来处理,处理完就“解雇”。反复“招人”和“开除”非常耗时耗力!ASP 或 ISAPI 等技术更像是“长期员工”或者“效率极高的小组”,一次“雇佣”就能处理很多请求,效率高得多。 效率对比 (形象化)

  • 静态网页:像直接发传单,最快 (基准 100)。
  • ISAPI:像高效流水线作业,速度中等 (约 50)。
  • ASP:像熟练业务员处理,速度尚可 (约 10)。
  • CGI:像每次都要临时招聘培训新人,最慢 (约 1)。

结论: 尽量用 ASP、ASP.NET、PHP (配置为 FastCGI 模式) 等更现代的技术替代旧的 CGI 程序,IIS 处理起来会快很多倍。

参考文章:优化 IIS 网站服务器性能的 8 个实用技巧