IIS服务器运维与性能优化全解析
1. 变更管理与备份恢复概述
在进行服务器变更时,无论是重大变更还是微小变更,变更审查委员会都需确保变更分类正确,识别并减轻意外后果,同时保证沟通和组织流程正确执行。对于IIS管理员而言,备份和恢复服务器是至关重要的操作任务。
IIS 7.0虽为微软迄今最安全稳定的Web平台,但因其处于边缘网络且流量大,比其他基础设施服务器更易遭受攻击或出现故障。因此,维护备份和防病毒措施是应对IIS服务器可能故障的低成本保险策略。
2. 备份范围确定
设计备份/恢复程序时,需考虑备份内容,主要分为两部分:
- 备份对服务器任务重要的所有数据和配置。
- 备份从备份介质恢复比从原始安装介质恢复更高效的所有内容。
具体来说,备份IIS服务器时需考虑以下主要数据类别:
| 数据类别 | 说明 | 示例 |
| ---- | ---- | ---- |
| 网站数据 | 包含为用户提供界面、管理数据和应用托管应用程序计算逻辑所需的代码和配置的文件 | HTML、ASP.NET和.DLL文件 |
| 交易数据 | 使用网站过程中收集的数据 | 日志、会话数据、用户凭据、产品数据和销售记录 |
| IIS 7.0配置 | 为托管应用程序自定义服务的设置 | 身份验证方案、文件目录和模块化开关(.config文件中) |
| 操作系统和依赖服务 | 为托管应用程序提供工作引擎的任何配置和支持文件 | 资源工具包、监控代理和本地/组策略 |
3. 备份方法和介质选择
以下是常见的备份介质选项及其优缺点:
| 选项 | 优点 | 缺点 | 速度 | 成本 |
| ---- | ---- | ---- | ---- | ---- |
| 无备份 | 经济、方便 | 存在丢失安装介质的风险,仅适用于极少数情况 | 恢复速度可能很慢,取决于安装时间和复杂性 | 无 |
| 磁带或盒式磁带 | 高容量介质,可异地存储 | 驱动器可能昂贵且速度慢,介质可能会不定期故障 | 1 - 10 MBps | $0.25 - $0.50每GB |
| 本地磁盘 | 快速,适合无人值守自动备份 | 不可移动,服务器仍是单点故障 | 100 - 320 MBps | $1每GB |
| 外部磁盘阵列(如SAN) | 快速,适用于工作组备份程序,容错 | 为实现容错配置磁盘可能昂贵 | 100 - 320 MBps | $4 - $10每GB |
| 服务器阵列 | 最高级别的容错,恢复响应时间最短 | 昂贵,维护和操作负担重 | 以太网100 MBps至千兆以太网1000 MBps | 可变 |
4. 备份策略制定
备份策略应根据最终用户对恢复时间的期望来确定:
-
低服务期望
:服务器可长时间停机,硬件通常无冗余和容错。备份应全面,用户可容忍灵活的恢复窗口。可使用Windows介质、清单和包含网站内容的备份介质从头重建服务器。
-
中等期望
:最终用户需要在固定时间内恢复故障的IIS服务器,应专注于快速恢复网站数据和IIS服务配置。可从头重建服务器或使用Symantec Ghost、Microsoft Automated Deployment Services(ADS)等成像技术创建的映像文件。
-
高可用性
:对于对业务连续性至关重要的IIS服务器,备份程序应更注重维护历史记录,而非从硬件故障中恢复。
以下是不同服务期望下的备份优先级:
| 服务期望 | 网站数据 | 交易数据 | IIS 7.0配置 | 操作系统和依赖服务 |
| ---- | ---- | ---- | ---- | ---- |
| 低 | 高,每月 - 每年,磁带或安装文件 | 低,从不,无 | 低,从不,无(清单) | 低,从不,无(清单) |
| 中等 | 高,每日 - 每小时,磁带 - 磁盘 | 高,每日 - 每小时,磁带 - 磁盘 | 中等,每月,磁带 | 中等,每月 - 每年,映像 |
| 高 | 高,每小时 - 持续(镜像),磁带 - 服务器阵列 | 高,每小时 - 持续(镜像),磁带 - 服务器阵列 | 高,从不,无 | 高,从不,无 |
5. 备份操作
可选择多种优秀的备份软件,如Symantec Backup Exec、CA ARCServe等。这里以Microsoft的Windows Server Backup为例介绍操作步骤:
1. 点击“开始”,鼠标悬停在“管理工具”链接上。
2. 点击“服务器管理器”以启动Windows Server管理器。
3. 在服务器管理器的左窗格中,点击“功能”。
4. 在右上角窗格中,点击“添加功能”以激活向导。
5. 在“添加功能”向导中,点击“添加所需功能”,然后点击“下一步”。
6. 在“选择功能”窗格中,打开“Windows Server备份功能”节点并选择所需选项(注意:命令行工具需要Windows PowerShell)。
7. 在“确认安装选择”页面上,查看所选内容并选择“安装”。
8. 功能安装完成后,再次点击“开始”,鼠标悬停在“管理工具”上以访问“Windows Server备份”选项。
9. 点击“Windows Server备份管理器”右侧“操作”窗格中的“备份计划”以启动备份计划向导。
10. 使用向导,可从本地计算机加载的卷中进行选择(除非已连接到远程计算机)。
另外,也可使用命令行工具wbadmin来备份和恢复系统状态,创建.CMD文件并使用以下命令:
Wbadmin start SystemStateBackup –backupTarget:[卷名]
6. 监控和性能调优的重要性
监控计算机系统对业务的价值已得到专业组织的广泛认可。通过监控工具可自动捕获和报告性能数据,跟踪应用程序和网站引擎的历史和状态,以及操作系统服务(包括IIS)的状态。监控的目的是收集数据,而优化则是利用这些数据构建最佳配置。
7. 监控网站的关键领域
安装IIS 7.0时,它具有为可靠性、安全性和性能设计的默认设置,且具备一些“自我修复”功能。但每个Web服务器都不同,需要随时间测量和跟踪性能。以下是需要监控和优化的主要领域:
- Http.sys(内核模式请求处理)
- 内存使用
- 处理器利用率
- 磁盘I/O
- 网络带宽
- 带宽限制
- Web连接
- HTTP压缩
- 站点配置
8. 监控IIS 7.0的工具选择
对于复杂的Web应用程序,可投资商业监控解决方案,如Symantec的i³ for Web Applications、Microsoft的System Center Operations Manager 2007等。若应用程序规模较小或重要性不高,Windows Server 2008提供了丰富的本地性能工具,包括:
| 工具 | 描述 |
| ---- | ---- |
| 任务管理器 | 提供本地运行进程和服务的实时数据,以及CPU和内存指标 |
| 新命令行工具 | 可在紧急情况下显示目标性能数据 |
| 可靠性和性能监视器 | 是Windows Vista和Windows Server 2008中所有性能监控功能的中心 |
9. 任务管理器的使用
任务管理器包含丰富信息,可通过以下两种方式打开:
- 使用鼠标:右键单击任务栏,从上下文菜单中点击“任务管理器”。
- 使用键盘:按Ctrl + Alt + Delete,然后从系统屏幕选项中点击“任务管理器”;或直接按Ctrl + Shift + Esc。
任务管理器的用途包括:
- 性能监控:查看关键服务器组件(如处理器、内存、网络吞吐量、硬盘驱动器I/O等)的实时性能。
- 性能调优:使用“处理器关联性”选项将进程与处理器关联,终止可能影响服务器性能的进程。
- 管理服务:查看和更改服务的运行状态,将服务与进程关联。
- 管理进程:查看运行进程的详细信息,包括分配的资源、描述和关联文件。
在Windows Server 2008中,任务管理器的“服务”选项卡可用于启动和停止服务,查看服务的处理器ID(PID)、描述、状态和组。还可将运行的服务映射到其进程标识符(PID),并通过“转到进程”选项查看关联的进程。“性能”选项卡以图形和表格形式提供实时性能数据,还可作为快捷方式打开“资源监视器”MMC控制台。
10. 新命令行工具介绍
Windows Server 2008包含一些新的命令行工具,具有新功能,部分工具以前可从操作系统资源工具包下载,现在已集成到Windows Server 2008中。以下是一些新命令的描述:
| 工具 | 描述 |
| ---- | ---- |
| clip | 将命令行工具的输出重定向到Windows剪贴板 |
| cmdkey | 创建、显示和删除存储的用户名和密码 |
| dispdiag | 显示诊断信息 |
| quser | 显示登录到系统的用户信息 |
| rpcping | 使用远程过程调用(RPC)协议ping服务器 |
| Timeout | 接受超时参数,等待指定时间段或直到按下任意键 |
| TraceRpt | 解析事件日志(如性能监视器生成的日志),帮助格式化和转换数据 |
| Waitfor | 在系统上发送或等待信号 |
| Whoami | 返回用户名和组信息,以及相应的安全标识符(SID)、权限和登录标识符(登录ID) |
| WinRM | Windows远程管理工具,防火墙友好的WMI助手,通过端口80上的新Windows管理服务读写远程Vista或Windows Server 2008计算机的配置数据 |
| WinRS | Windows远程外壳工具,防火墙友好的管理工具,通过端口80上的WinRM在远程Vista或Windows Server 2008计算机上启动进程和执行命令 |
11. 可靠性和性能监视器
在Windows Server 2008中,可靠性和性能监视器是性能任务的核心,可通过以下三种方式启动:
- 选择“开始” -> “运行”,输入Perfmon.exe,然后按[Enter]。
- 右键单击“开始”菜单中的“计算机”链接,选择“管理”以打开计算机管理控制台,点击“可靠性和性能”节点。
- 点击“开始”菜单中的“控制面板”链接,双击“管理工具”链接,然后双击“可靠性和性能监视器”。
性能日志用户组是Windows Server 2008中的内置组,若该组成员要启动数据记录或修改数据收集器集,需先分配“作为批处理作业登录”的用户权限,操作步骤如下:
1. 点击“开始”按钮 -> “运行”,输入secpol.msc,然后按[Enter],打开本地安全策略MMC管理单元。
2. 在导航窗格中,展开“本地策略”并点击“用户权限分配”。
3. 在控制台窗格中,右键单击“作为批处理作业登录”,然后点击“属性”。
4. 在“属性”页面中,点击“添加用户或组”。
5. 在“选择用户或组”对话框中,点击“对象类型”,选择“组”并点击“确定”。
6. 在“选择用户或组”对话框中输入“性能日志用户”,然后点击“确定”。
7. 在“属性”页面中,点击“确定”。
12. 性能监视器的使用
性能监视器可查看实时和历史性能数据,以图形、直方图或表格报告形式呈现。访问性能监视器的步骤如下:
1. 选择“开始” -> “运行”,输入Perfmon.exe,然后按[Enter]打开性能和可靠性控制台。
2. 若要连接到远程计算机,右键单击“性能和可靠性”节点,选择“连接到另一台计算机”。
3. 点击“监控工具”节点下的“性能监视器”节点。
配置性能监视器时,点击顶部菜单栏的绿色加号(+),使用“添加计数器”屏幕选择要监控的性能对象和计数器。以下是在“添加计数器”对话框中执行常见任务的方法:
| 任务 | 步骤 |
| ---- | ---- |
| 选择计数器的源计算机 | 从下拉列表中选择计算机,或点击“浏览”查找其他计算机,可添加本地计算机或网络中可访问的其他计算机的计数器 |
| 显示所选计数器组的描述 | 选择页面左下角的“显示描述”,选择其他组时描述将更新 |
| 添加一组计数器 | 高亮显示组名并点击“添加” |
| 添加单个计数器 | 点击向下箭头展开组,高亮显示计数器,然后点击“添加” |
| 搜索计数器实例 | 高亮显示计数器组或展开组并高亮显示要添加的计数器,在“所选对象的实例”框下方的下拉列表中输入进程名称,然后点击“搜索”,输入的进程名称将在下拉列表中可用,可用于与其他计数器重复搜索 |
| 仅添加计数器的某些实例 | 高亮显示列表中的计数器组或计数器,从“所选对象的实例”框中出现的列表中选择要添加的进程,然后点击“添加” |
13. 可靠性监视器的使用
可靠性监视器提供系统稳定性概述,显示对系统可靠性有影响的活动的事件详细信息。可通过以下步骤访问:
1. 点击“开始”按钮,在“开始搜索”字段中输入Perfmon.exe,然后按[Enter]打开性能和可靠性控制台。
2. 若要连接到远程计算机,右键单击“性能和可靠性”节点,选择“连接到另一台计算机”。
3. 点击“监控工具”节点下的“可靠性监视器”节点。
可靠性监视器的主要区域包括系统可靠性报告,其顶部是一个图表,绘制系统正常运行时间和性能随时间的变化,可调整图表焦点从“所有数据”到特定日期。图表下方是详细数据,分为以下主要类别:
- 系统时钟更改[日期范围]:显示系统时间的更改,仅在选择包含系统时钟更改的日期进行报告时显示。
- 软件(卸载/安装)[日期范围]:显示软件安装和卸载,包括操作系统组件、Windows更新、驱动程序和应用程序。
- 应用程序故障[日期范围]:显示应用程序故障,包括无响应应用程序的终止或停止工作的应用程序。
- 硬件故障[日期范围]:显示磁盘和内存故障。
- Windows故障[日期范围]:显示启动和操作系统故障。
- 其他故障[日期范围]:显示影响稳定性且不属于上述类别的故障,包括意外的操作系统关机。
14. 数据收集器集的创建
Windows Server 2008的可靠性和性能监视器引入了数据收集器集的概念,可将多个数据收集点组织成一个组件,用于查看或记录性能。有三种创建数据收集器集的方法:
- 从性能监视器创建:在性能监视器显示窗格中右键单击,指向“新建”,然后点击“数据收集器集”以启动向导。
- 从模板创建:这是创建新数据收集器集的最简单方法,有多个模板可供选择,模板为XML文件,可导出和导入。
- 手动创建:打开可靠性和性能监视器,双击“数据收集器集”节点以展开它,右键单击“用户定义”节点,指向“新建”并点击“数据收集器集”以启动向导。
以下是从性能监视器创建数据收集器集的详细步骤:
1. 在性能监视器显示窗格中右键单击,指向“新建”,点击“数据收集器集”,启动“创建新数据收集器集”向导,创建的数据收集器集将包含当前性能监视器视图中选择的所有数据收集器。
2. 为数据收集器集输入名称,然后点击“下一步”。
3. “根目录”设置将包含数据收集器集收集的数据,若要将数据收集器集数据存储在不同位置,可更改此设置,浏览并选择目录,或输入目录名称(手动输入目录名称时,末尾不要输入反斜杠)。
4. 点击“下一步”定义数据收集器集运行的用户帐户,或点击“完成”保存当前设置并退出。
5. 点击“下一步”后,可稍后更新数据收集器集以使用特定用户运行,点击“更改”按钮输入与默认列出的不同用户的用户名和密码。
6. 点击“完成”完成向导并返回Windows可靠性和性能监视器。
若要查看数据收集器集的属性或进行其他更改,选择“打开此数据收集器集的属性”,可点击“属性”页面中的“帮助”按钮获取更多信息。若要立即保存并启动数据收集器集(并开始将数据保存到步骤4指定的位置),点击“立即启动此数据收集器集”;若要保存数据收集器集但不开始收集,点击“保存并关闭”。
15. 报告的查看和使用
可靠性和性能监视器包含三个默认系统报告,用于评估系统健康状况和诊断系统性能问题:
- LAN诊断:详细说明网络组件、连接和活动的状态。
- 系统诊断:详细说明硬件驱动程序、系统服务、安全系统和磁盘驱动器的状态。
- 系统性能:详细指标涵盖硬件设备的资源利用率以及运行应用程序的影响。
查看系统诊断报告的步骤如下:
1. 在导航树中,展开“数据收集器集”,然后展开“系统”。
2. 右键单击“系统诊断”并点击“启动”,开始数据收集。
3. 在导航树中,展开“报告”,展开“系统”,展开“系统诊断”,然后点击当前日期。
4. 数据收集和报告生成完成后,系统诊断报告将显示在控制台窗格中。
使用报告时,可通过以下方式导航:
- 使用类别栏右侧的蓝色箭头图标展开和折叠类别。
- 使用类别中心的数据图标拉起报告中所有数据点的摘要菜单,并使用其中的快速链接导航。
- 通过点击顶部菜单栏上的所需图标在“报告视图”和“性能监视器视图”之间切换,点击带有红线的黑色图标以图形形式查看数据,点击带有白色框的绿色图标以报告形式查看数据。
需要注意的是,在本地服务器上使用性能监视器会增加服务器负载,通常可假设日志记录会使大多数捕获的数据增加5%,但实际情况可能差异很大。为确保性能数据准确,最好从另一台服务器进行监控,在不托管Web应用程序的Windows Server 2008服务器上打开性能和可靠性监视器,并将监控计数器指向远程Web主机服务器,这样收集的数据不会受到监控和日志记录过程的影响。创建和查看收集数据的报告也会增加服务器资源需求,因此在非托管Web应用程序的服务器上进行这些操作可进一步保护Web服务器的资源负载。
16. 监控对象和计数器的选择
选择要监控的对象和计数器时,有数十个对象和数百个计数器可供选择,选择有意义的计数器可能是一项艰巨任务。以下是基于微软最佳实践的一些建议:
16.1 内存使用
内存问题可能导致性能下降,可通过以下计数器跟踪内存、缓存和虚拟内存(分页)瓶颈:
| 区域 | 计数器 | 描述 |
| ---- | ---- | ---- |
| 物理和虚拟内存使用 | Memory\Available Kbytes
Memory\Committed Bytes | Memory\Available Kbytes是服务器上运行的进程可用的物理内存量;Memory\Committed Bytes是已提交的虚拟内存量。若服务器可用内存很少,可能需要向系统添加内存,通常希望可用内存不少于服务器总物理内存的5%,提交的字节值通常不应超过总物理内存的75%,在高峰时段捕获数据 |
| 内存缓存 | Memory\Cache Bytes
Internet Information Services Global\Current File Cache Memory Usage
Internet Information Services Global\File Cache Hits % | Memory\Cache Bytes表示文件系统缓存的总大小;Internet Information Services Global\Current File Cache Memory Usage表示IIS文件缓存当前使用的内存;Internet Information Services Global\File Cache Hits %表示缓存命中与总缓存请求的比率,反映IIS文件缓存设置的工作效果,主要包含静态文件的网站应具有非常高的缓存命中率(70% - 85%) |
| 内存页面错误 | Memory\Page Faults/sec
Memory\Pages Input/sec
Memory\Page Reads/sec | 当进程请求内存中的页面且系统在请求位置找不到时会发生“页面错误”,若请求的页面在内存其他位置,称为软页面错误,若需从磁盘检索请求的页面,称为硬页面错误,大多数处理器可处理大量软错误,但硬错误会导致显著延迟。Page Faults/sec是处理器处理所有类型页面错误的总体速率;Pages Input/sec是从磁盘读取以解决硬页面错误的总页面数;Page Reads/sec是解决硬页面错误所需的总磁盘读取次数,Pages Input/sec大于或等于Page Reads/sec,可了解硬页面错误率,若硬页面错误数量较多,可能需要增加内存或减小服务器上的缓存大小,IIS使用的内存可通过MaxCachedFile Size注册表设置控制,默认值为256 KB |
16.2 处理器利用率
在审查处理器利用率之前,应先解决任何内存问题。IIS服务器上的处理器利用率受处理HTTP请求、代码执行和I/O写入的影响。每个安装在服务器上的处理器都有自己的计数器对象,以下是一些有价值的计数器:
| 区域 | 计数器 | 描述 |
| ---- | ---- | ---- |
| 线程排队 | System\Processor Queue Length | 显示等待执行的线程数,这些线程在系统中所有处理器共享的区域排队,若此计数器持续值为10个或更多线程,可能需要升级或添加处理器 |
| CPU使用 | Processor\% Processor Time | 显示所选CPU执行非空闲线程的时间百分比,为每个处理器实例单独跟踪此计数器,若该值较高(大于75%)且网络接口和磁盘I/O吞吐量速率保持较低,可能需要升级或添加处理器 |
16.3 磁盘I/O
尽管现代存储系统性能较高,但磁盘吞吐量仍可能影响服务器性能。若服务器有大量磁盘读写任务,首先可能因内存限制导致整体性能下降,因为内存读写比磁盘I/O快得多。为减少磁盘I/O,应管理服务器内存,确保仅在必要时使用page.sys文件。以下是测量磁盘I/O性能的计数器:
| 区域 | 计数器 | 描述 |
| ---- | ---- | ---- |
| 整体驱动器性能 | PhysicalDisk\% Disk Time | 表示所选磁盘驱动器忙于处理读取或写入请求的时间百分比,若% Disk Time值较高且处理器和网络连接正常,系统的硬盘驱动器可能导致性能下降,例如,若系统处理器利用率为50%或更低,网络利用率为20%,而% Disk Time为90%,则表明存在问题 |
| 磁盘I/O | PhysicalDisk\Disk Writes/sec
PhysicalDisk\Disk Reads/sec
PhysicalDisk\Avg. Disk Write Queue Length
PhysicalDisk\Avg. Disk Read Queue Length
Physical Disk\Current Disk Queue Length | PhysicalDisk\Disk Writes/sec和PhysicalDisk\Disk Reads/sec分别是每秒的写入和读取次数,用于测量磁盘I/O活动;PhysicalDisk\Avg. Disk Write Queue Length和PhysicalDisk\Avg. Disk Read Queue Length结合起来表明有多少写入或读取请求等待处理,通常希望等待请求很少,请求延迟与队列长度减去独立磁盘冗余阵列(RAID)中的驱动器数量成正比,大多数情况下,平均磁盘队列长度应小于4 |
| ASP性能 | Active Server Pages\Request Wait Time
Active Server Pages\Requests Queued
Active Server Pages\ Requests Rejected
Active Server Pages\Requests/sec | 这些计数器表明IIS处理ASP时的相对性能,Active Server Pages\Request Wait Time是最近请求在队列中等待的毫秒数;Active Server Pages\Requests Queued是等待处理的请求数;Active Server Pages\Requests Rejected是因没有资源处理而未执行的请求总数;Active Server Pages\Requests/sec是每秒执行的请求数,理想情况下队列应为空,若请求排队,等待时间应非常低,也不希望看到因资源不足而拒绝请求 |
16.4 网络带宽
通过监控以下计数器可确定Web服务器网络接口卡(NIC)的吞吐量和当前活动:
| 区域 | 计数器 | 描述 |
| ---- | ---- | ---- |
| 网络流量 | Network Interface\Bytes Total/sec | 表示每个网络适配器发送和接收字节的速率,包括帧字符,若在典型负载下每秒总字节值超过总带宽的50%,高峰时段可能出现问题 |
16.5 Web服务计数器
以下计数器描述了网站的主要活动方式,可了解网站访问者对网站组件的需求以及网站服务的利用率:
| 区域 | 设置 | 描述 |
| ---- | ---- | ---- |
| 网络服务需求 | Web Service\Current Connections
Web Service\Connection Attempts/sec | Web Service\Current Connections是与Web服务建立的当前连接数;Web Service\Connection Attempts/sec是自服务启动以来尝试与WWW服务建立连接的速率(每秒) |
| 网络服务利用率 | Web Service\Bytes Total/sec
Web Service\Total Method Requests/sec | Web Service\Bytes Total/sec是Web服务传输字节的总速率;Web Service\Total Method Requests/sec是所有HTTP请求的速率 |
| 网络服务利用率 | Web Service\ISAPI Extension Requests/sec
Web Service\CGI Requests/sec | Web Service\ISAPI Extension Requests/sec是Web服务接收ISAPI扩展请求的速率;Web Service\CGI Requests/sec是Web服务接收CGI请求的速率,若这些值因负载增加而降低,可能需要重新设计应用程序 |
| 网络服务利用率 | Web Service\Get Requests/sec
Web Service\Post Requests/sec | Web Service\Get Requests/sec是使用GET方法的HTTP请求速率,GET请求是最常见的HTTP请求;Web Service\Post Requests/sec是使用POST方法的HTTP请求速率,POST请求通常用于表单,发送到ISAPIs(包括ASP)或CGIs,GET请求几乎构成了浏览器的所有其他请求,包括对静态文件、ASPs和其他ISAPIs以及CGI请求 |
| 网络服务器存储容量 | Web Service Cache\File Cache Hits % | 表示自服务启动以来用户模式文件缓存中的成功查找总数,若缓存功能正常,静态内容的此计数器值应较高,若“Kernel URI Cache Hits % Age”计数器值较高,此值可能较低 |
| 网络服务器处理器容量 | Web Service Cache\Kernel:URI Cache Flushes
Web Service Cache\Kernel:URI Cache Misses
Web Service Cache\Kernel:URI Cache Hits % | Web Service Cache\Kernel:URI Cache Flushes应相对于请求数量尽可能低,每次从Http.sys响应缓存中刷新文件时此数字会增加,意味着内容在过去两到四分钟内未被访问,减少此数字的唯一方法是减少缓存刷新频率,但频繁刷新会导致Http.sys为未被访问的内容使用更多内存;Web Service Cache\Kernel:URI Cache Misses是自服务启动以来内核URI缓存中未成功查找的总数,此值越低越好(每个动态内容请求会使此计数器值增加1);Web Service Cache\Kernel:URI Cache Hits %是内核URI缓存命中与总缓存请求的比率,此比率越高越好,最高可达100(此计数器适用于静态未经身份验证的内容和标记为可缓存的动态内容) |
16.6 ASP.NET计数器
可使用以下计数器审核ASP.NET代码的容量、稳定性和吞吐量指标:
| 区域 | 设置 | 描述 |
| ---- | ---- | ---- |
| ASP.NET稳定性 | ASP.NET Apps vX\Errors Total
ASP.NET vX\Application Restarts
ASP.NET vX\Worker Process Restarts | ASP.NET Apps vX\Errors Total(X是.NET版本号)是ASP.NET应用程序中发生的错误总数;ASP.NET vX\Application Restarts是Web服务器生命周期内应用程序重启的次数;ASP.NET vX\Worker Process Restarts是机器上工作进程重启的次数 |
| ASP.NET吞吐量 | ASP.NET Apps vX\Requests/Sec
ASP.NET vX\Requests Queued | ASP.NET Apps vX\Requests/Sec(X是.NET版本号)是ASP.NET应用程序每秒执行的请求数;ASP.NET vX\Requests Queued是等待处理的ASP.NET请求数 |
| ASP.NET容量 | ASP.NET vX\Requests Rejected
ASP.NET vX\Worker Process Running | ASP.NET vX\Requests Rejected(X是.NET版本号)是因服务器资源不足而未执行的请求总数,此计数器表示返回503 HTTP状态代码的请求数;ASP.NET vX\Worker Process Running是机器上运行的工作进程数 |
17. 集中式二进制日志记录
当IIS服务器托管多个网站时,创建数百或数千个格式化日志文件的过程会消耗服务器宝贵的CPU和内存资源,使用生产Web服务器进行监控和日志记录可能会导致性能和可扩展性问题。集中式二进制日志记录可最小化用于日志记录的系统资源,在此格式下,IIS为Web服务器上的所有网站创建一个日志文件,每个网站将请求命中信息作为未格式化的二进制数据写入,二进制输出文件比其他日志格式更高效,比ANSI文本文件占用的空间最多可减少50%。
集中式二进制日志记录是服务器属性,而非网站属性,启用集中式二进制日志记录后,无法以不同格式记录单个网站的数据,集中式二进制日志记录日志文件的扩展名为Internet二进制日志(.ibl)。
启用集中式二进制日志记录的步骤如下:
1. 打开IIS管理器。
2. 点击“连接”窗格中的Web服务器节点。
3. 在中心窗格中,找到IIS部分的“日志记录”图标并双击。
4. 在“日志文件”窗格中,选择“二进制”。
5. 根据需要进行其他更改,包括日志路径、名称和滚动详细信息。
6. 当离开“日志记录”设置时,IIS管理器会询问是否保存设置,点击“是”。
7. 重启万维网发布服务(WWW服务)以使更改生效,在命令控制台中执行以下操作:
- 输入net stop W3SVC并按[Enter]。
- 输入net start W3SVC并按[Enter]。
日志文件将在W3SVC文件夹中创建,默认位于systemroot\System32\LogFiles\。
从原始日志文件中提取数据时,可选择以下方法之一:
- 创建自定义应用程序(如VB、VB.NET),定位并从原始文件中提取所需数据,并将数据转换为格式化文本,可在IIS 7.0 SDK中查看头文件和日志文件格式描述。
- 使用Log Parser工具从原始文件中提取数据,Log Parser工具及其用户文档包含在IIS 6.0资源工具包工具中,也可从www.microsoft.com/downloads单独下载。
集中式二进制日志记录记录的信息与W3C扩展日志文件格式类似,但不完全相同,包括:
- 日期
- 时间
- 客户端IP地址
- 用户名
- 站点ID
- 服务器名称
- 服务器IP地址
- 服务器端口
- 方法
- URI主干
- URI查询
- 协议状态
- Windows状态
- 发送的字节数
- 接收的字节数
- 花费的时间
- 协议版本
- 协议子状态
需要注意的是,W3C扩展日志文件中报告的以下字段在集中式二进制日志记录日志文件中不记录:
- 主机(主机头)
- 用户代理(客户端的浏览器类型,此字符串太大,不适合二进制格式)
- Cookie(发送的Cookie内容)
- 引荐来源(用户上次访问的网站)
通过收集监控解决方案中的数据,可对网站配置、硬件平台或操作系统服务进行增量更改,有信心这些更改将切实提高性能。
IIS服务器运维与性能优化全解析
18. 性能优化策略总结
综合前面的内容,我们可以总结出一套针对 IIS 服务器的性能优化策略,以下是具体的步骤和要点:
| 优化方面 | 具体策略 |
|---|---|
| 备份恢复 | 根据服务器的重要性和服务期望,选择合适的备份范围、方法和介质,定期进行备份并测试恢复流程,确保数据的安全性和可恢复性。 |
| 监控调优 | 利用各种监控工具,如任务管理器、性能监视器、可靠性监视器等,对服务器的关键指标进行实时监控,包括内存使用、处理器利用率、磁盘 I/O、网络带宽等。根据监控数据,及时发现性能瓶颈并进行调整。 |
| 日志记录 | 对于托管多个网站的 IIS 服务器,考虑使用集中式二进制日志记录,以减少日志记录对服务器资源的消耗。 |
19. 性能优化的实施流程
为了更好地实施性能优化,我们可以按照以下流程进行:
graph LR
A[确定优化目标] --> B[收集服务器信息]
B --> C[进行性能监控]
C --> D[分析监控数据]
D --> E{是否存在性能瓶颈}
E -- 是 --> F[制定优化方案]
E -- 否 --> G[继续监控]
F --> H[实施优化方案]
H --> I[再次进行性能监控]
I --> J[评估优化效果]
J --> K{是否达到优化目标}
K -- 是 --> L[结束优化]
K -- 否 --> F
20. 优化案例分析
下面通过一个实际的案例来展示如何运用上述策略和流程进行性能优化。
某公司的 IIS 服务器在业务高峰期经常出现响应缓慢的问题,影响了用户体验。经过分析,发现主要问题在于内存使用过高和磁盘 I/O 繁忙。
- 内存优化 :通过监控发现服务器的可用内存经常低于 5%,且提交的虚拟内存超过了 75%。于是,增加了服务器的物理内存,并调整了 IIS 的缓存设置,将 MaxCachedFileSize 注册表值适当减小,以减少内存占用。
- 磁盘 I/O 优化 :磁盘 I/O 繁忙主要是由于大量的日志记录和频繁的文件读写操作。采用集中式二进制日志记录,减少了日志文件的大小和生成频率。同时,对磁盘进行了碎片整理,并将一些不常用的数据迁移到其他存储设备上,减轻了磁盘的负担。
经过这些优化措施后,服务器的性能得到了显著提升,在业务高峰期的响应时间明显缩短,用户满意度也得到了提高。
21. 常见问题及解决方案
在 IIS 服务器的运维和性能优化过程中,可能会遇到一些常见的问题,以下是一些问题及对应的解决方案:
| 问题 | 解决方案 |
|---|---|
| 备份失败 | 检查备份软件的配置,确保备份介质有足够的空间,检查网络连接是否正常。 |
| 监控数据不准确 | 确保监控工具的配置正确,避免在本地服务器上进行监控,以减少监控对服务器性能的影响。 |
| 性能优化效果不明显 | 重新分析监控数据,检查优化方案是否合理,是否存在其他未发现的性能瓶颈。 |
22. 未来趋势与展望
随着技术的不断发展,IIS 服务器的运维和性能优化也将面临新的挑战和机遇。以下是一些未来可能的发展趋势:
- 自动化运维 :利用人工智能和机器学习技术,实现服务器的自动化监控、故障诊断和优化,提高运维效率和准确性。
- 云原生架构 :越来越多的企业将 IIS 服务器迁移到云端,采用云原生架构,如容器化和微服务,以提高服务器的灵活性和可扩展性。
- 绿色节能 :随着环保意识的增强,服务器的节能问题将受到更多关注。未来的 IIS 服务器可能会采用更加节能的硬件和软件技术,降低能源消耗。
23. 总结
IIS 服务器的运维和性能优化是一个复杂而长期的过程,需要综合考虑多个方面的因素。通过合理的备份恢复策略、有效的监控调优手段和科学的性能优化流程,可以确保 IIS 服务器的稳定性、可靠性和高性能,为企业的业务发展提供有力支持。同时,我们也需要关注未来的发展趋势,不断学习和掌握新的技术,以应对不断变化的挑战。
希望本文所介绍的内容能够帮助读者更好地理解和掌握 IIS 服务器的运维和性能优化方法,在实际工作中取得更好的效果。
超级会员免费看
2738

被折叠的 条评论
为什么被折叠?



