使用 WSRM 管理 IIS 7 应用池的 CPU 利用率

作者:Walter Oliver

在过去,管理员使用 IIS 中的 CPULimit 元数据库属性来配置应用程序池中的工作进程在一段时间内可使用的最大 CPU 时间百分比。 随着 Windows 系统资源管理器 (WSRM) 的推出,不再需要设置 CPULimit,而且也不建议这样做。

WSRM 让管理员能够控制如何将 CPU 和内存资源分配给应用程序、服务和进程。 以这种方式管理资源可提高系统性能,并减少应用程序、服务或进程干扰系统其余部分的可能性。 对于计算机上运行的应用程序和服务的用户,它还带来更加一致且可预测的体验。

WSRM 通过名为 Equal_Per_IISAppPool 的内置策略将资源管理与 Web 池相集成。 如果在群集配置中运行,WSRM 中的策略会自动切换到不同的资源分配,以使硬件响应热添加更改或群集更改。

关闭 CPULimit 元数据库属性

  1. 启动 IIS 管理器并连接到目标服务器

  2. 单击“应用程序池”节点来查看可用的应用程序池,然后单击“操作”面板中的“高级设置”,为每个应用程序池打开“高级设置”对话框。

    已选择“默认应用池”节点的屏幕截图。“操作”窗格的“编辑应用程序池”部分强调高级设置。

  3. 在“CPU”部分下,确保 CPU Limit 属性设置为 0(默认值)。

    “高级设置”对话框中 C P U 限制设置为 0 的屏幕截图。

使用内置 IIS 策略

  1. 安装 Web 角色后,继续安装 Windows 系统资源管理器。

  2. 单击 Windows“开始”按钮来启动 WSRM,选择“管理工具”,然后选择“Windows 系统资源管理器”。

    管理员工具中 Windows 系统资源管理器的屏幕截图。

  3. 启动 Equal_Per_IISAppPool 内置策略。

    a. 在左侧窗格中,打开“资源分配策略”节点

    “W S R M”对话框的屏幕截图,其中“资源分配策略”中选择了“每下划线一次”下划线 I S 应用池。 b. 在左侧窗格中右键单击 Equal_Per_IISAppPool c. 选择“设置为管理策略”d. 如果系统提示禁用日历,请单击“确定”

    禁用日历之前显示的警告消息的屏幕截图。 e. 观察 IIS 负载下系统的行为。 可以使用 WCAT 模拟服务器上的负载。 此工具是 IIS 6.0 资源工具包的一部分。

创建自定义 IIS 策略(可选)

  1. 为不同的应用池创建至少 2 个进程匹配条件 (PMC):

    1. 右键单击左侧窗格中的“进程匹配条件”节点。

    2. 选择“新建进程匹配条件”。

    3. 这会显示“新建进程匹配条件”对话框。

      “新建进程匹配条件”对话框的屏幕截图,其中“条件”名称设置为“我的 P M C”。

    4. 为 PMC 输入一个名称,人后单击“添加”。

    5. 会出现“添加规则”对话框

    6. 选择“文件或命令行”选项卡

    7. 单击标记为“包含的文件或命令行”的区域,然后键入匹配的条件。

    8. 使用以下格式:@w3wp.exe.*<AppPoolName>

      “添加规则”对话框的屏幕截图,其中符号为 3 w dot e e dot asterisk My App Pool,包含在“文件”或“命令行”选项卡中。

    9. 添加几个行,使其他应用池(或任何其他进程)与此 PMC 匹配。

    10. 单击“确定”。

    11. 对每个额外的 PMC 重复上述步骤。

  2. 创建资源分配策略 (RAP):

    1. 在左侧窗格中,右键单击“资源分配策略”节点。

    2. 选择“新建资源分配策略”。

    3. 会出现“新建资源分配策略”对话框。

    4. 为 RAP 输入一个名称。

      “新建资源分配策略”对话框的屏幕截图,其中显示了“新建 R A P”的策略名称。

    5. 单击“添加” 。

    6. 会出现“添加或编辑资源分配”对话框。

    7. (从下拉列表中)选择此分配应转到的 PMC。

    8. 输入要分配给 PMC 的处理器百分比。

      将进程匹配条件设置为“我的 P M C”和“处理器百分比”设置为 50 的屏幕截图。

    9. 单击“确定”。

    10. 为要由 RAP 管理的所有其他 PMC 添加资源分配。

    11. 单击“确定”。

  3. 激活策略。

    1. 右键单击上面创建的 RAP。
    2. 选择“设置为管理策略”。
    3. 如果系统提示禁用日历,请单击“是”。
    4. 观察运行 IIS 负载时系统的行为。