服务器性能监控与优化全解析
1. 性能瓶颈概述
在服务器管理过程中,管理员常常会遇到服务器性能问题,这些问题可能没有明显的原因,比如硬件故障或服务中断。用户可能会抱怨服务器在一天中的某些时段运行缓慢,或者性能在数周甚至数月内逐渐下降。而这其中,性能瓶颈是一个常见的原因。
性能瓶颈指的是系统中某个组件的性能无法达到可接受的水平,与其他组件相比表现不佳。例如,用户反馈文件服务器性能慢,管理员可能花费大量时间和金钱升级网络,但如果服务器使用的是过时的处理器,那么性能提升可能微乎其微,因为处理器才是真正的瓶颈,它无法跟上新的高速网络的数据传输能力。
造成瓶颈的原因有多种:
-
服务器负载增加
:服务器最初可能能很好地承担特定角色,但随着用户或任务的增加,一个或多个组件的不足可能会变得更加明显。比如,一个最初足以承载公司网站的 Web 服务器,在公司推出新产品后,网站流量增加了两倍,此时可能会发现该 Web 服务器的磁盘性能无法处理额外的流量。
-
硬件故障
:硬件故障并不总是表现为灾难性的停机。某个组件可能会间歇性地出现故障,导致服务器性能下降且表现不稳定。例如,连接服务器和交换机的网络电缆出现故障,可能会导致偶尔的流量中断,从而表现为服务器性能下降。
-
服务器角色变更
:不同的应用程序对资源的需求不同。一台作为 Web 服务器运行良好的计算机,当将其角色变更为数据库服务器时,可能会发现处理器速度无法满足新应用程序的负载需求。
2. 使用性能监视器定位瓶颈
性能监视器控制台为定位瓶颈提供了大部分所需的工具。通常,我们会检查计算机的四个主要子系统:CPU、内存、磁盘和网络。
2.1 CPU 计数器
一个性能不足或出现故障的处理器阵列可能会导致服务器对传入的客户端请求进行排队,从而无法及时响应。以下是一些用于一般处理器子系统监控的性能计数器:
| 计数器名称 | 含义 | 可接受范围 | 处理建议 |
| — | — | — | — |
| Processor: % Processor Time | 处理器忙碌的时间百分比 | 低于85% | 若值过高,尝试确定哪些进程占用了过多处理器时间,或升级、添加处理器 |
| System: Processor Queue Length | 等待处理器执行的程序线程数 | 小于10 | 值过高时,升级或添加处理器 |
| Server Work Queues: Queue Length | 等待使用特定处理器的请求数 | 小于4 | 值过高时,升级或添加处理器 |
| Processor: Interrupts/Sec | 处理器每秒处理的硬件中断数 | 需与基线对比 | 值急剧增加时,检查系统中哪个硬件组件产生了过多中断 |
2.2 内存计数器
服务器内存不足会导致计算机无法充分缓存常用数据,使得进程更多地依赖磁盘读取,从而减慢整个系统的运行速度。内存问题可能会影响其他所有子系统,例如内存不足导致的过度磁盘分页可能会让系统看起来像是存储子系统出现了问题。
常见的内存问题之一是内存泄漏,即程序分配了内存但在使用完毕后没有释放。随着时间的推移,计算机的可用内存可能会被完全耗尽,导致性能下降甚至系统停机。内存泄漏可能是快速的,几乎立即影响服务器的整体性能,也可能是缓慢且难以察觉的,在数天或数周内逐渐降低系统性能。大多数情况下,内存泄漏是由第三方应用程序引起的,但操作系统也可能出现此类问题。
以下是用于监控基本内存性能的计数器:
| 计数器名称 | 含义 | 可接受范围 | 处理建议 |
| — | — | — | — |
| Memory: Page Faults/Sec | 每秒处理所需代码或数据不在内存中的次数 | 低于5 | 值过高时,检查 Memory: Pages/Sec 计数器,若硬页错误过多,确定导致过度分页的进程或增加内存 |
| Memory: Pages/Sec | 每秒所需信息不在 RAM 中,需从磁盘读取或写入磁盘以释放 RAM 空间的次数 | 0 - 20 | 值过高时,确定导致过度分页的进程或增加内存 |
| Memory: Available MBytes | 可用物理内存的大小(以兆字节为单位) | 不低于系统总物理内存的5% | 值过低时,考虑添加内存 |
| Memory: Committed Bytes | 在磁盘分页文件中预留空间的虚拟内存量 | 低于物理 RAM 量 | 值过高可能表示内存泄漏或需要增加内存 |
| Memory: Pool Non - Paged Bytes | 操作系统用于存储不能写入磁盘的对象的内存区域大小 | 稳定值 | 值随时间增加可能表示内存泄漏 |
2.3 磁盘计数器
存储子系统如果承受过多的读写命令,会降低系统处理客户端请求的速度。服务器的硬盘驱动器比其他三个子系统承担着更大的物理负担,因为在满足多个客户端的 I/O 请求时,磁头必须不断移动到磁盘盘片的不同位置。然而,磁头的移动速度是有限的,当驱动器达到其最大读写速度时,额外的请求就会开始在队列中堆积,等待处理。因此,存储子系统是瓶颈的高发区域。
以下是用于监控存储子系统的计数器:
| 计数器名称 | 含义 | 可接受范围 | 处理建议 |
| — | — | — | — |
| PhysicalDisk: Disk Bytes/Sec | 每秒传输到或从磁盘传输的平均字节数 | 不低于原始基线水平 | 值降低可能表示磁盘故障,考虑升级存储子系统 |
| PhysicalDisk: Avg. Disk Bytes/Transfer | 读写操作期间传输的平均字节数 | 不低于原始基线水平 | 值降低可能表示磁盘故障,考虑升级存储子系统 |
| PhysicalDisk: Current Disk Queue Length | 待处理的磁盘读写请求数 | 每个磁盘主轴小于2 | 值过高可能表示驱动器故障或无法满足需求,考虑升级存储子系统 |
| PhysicalDisk: % Disk Time | 磁盘驱动器忙碌的时间百分比 | 低于80% | 值过高可能表示驱动器故障、无法满足需求或内存问题导致过度磁盘分页,检查内存泄漏问题,若未发现问题则考虑升级存储子系统 |
| LogicalDisk: % Free Space | 磁盘上的可用空间百分比 | 大于20% | 值过低时,考虑添加磁盘空间 |
当存储子系统出现问题且不是由硬件故障引起时,通常可以通过升级存储系统来解决,具体措施包括:
- 安装更快的硬盘驱动器,如固态硬盘(SSD)。
- 安装额外的硬盘驱动器,并将数据分散存储,以减轻每个驱动器的 I/O 负担。
- 用 RAID(独立磁盘冗余阵列)阵列替换独立驱动器。
- 向现有 RAID 阵列中添加更多磁盘驱动器。
2.4 网络计数器
监控网络性能比监控其他三个子系统更为复杂,因为计算机外部的许多因素都可能影响网络性能。以下是一些用于判断是否存在网络问题的计数器:
| 计数器名称 | 含义 | 可接受范围 | 处理建议 |
| — | — | — | — |
| Network Interface: Bytes Total/Sec | 所选网络接口适配器每秒发送和接收的字节数 | 不低于原始基线水平 | 值降低可能表示网络硬件故障或其他网络问题 |
| Network Interface: Output Queue Length | 网络接口适配器等待传输的数据包数 | 越低越好,最好为零,不超过2可接受 | 值过高可能表示网络接口适配器故障或存在其他网络问题 |
| Server: Bytes Total/Sec | 服务器通过所有网络接口发送和接收的总字节数 | 不超过服务器网络接口总带宽容量的50% | 值过高时,考虑将一些应用程序迁移到其他服务器或升级到更快的网络 |
如果这些计数器的值表明网络本身是瓶颈,有两种方法可以升级网络,但都不简单:
-
提高网络速度
:这意味着要更换所有计算机上的网络接口适配器,以及网络上的交换机、路由器和其他设备,可能还需要更换电缆。
-
在服务器中安装额外的网络适配器并重新分配网络
:如果服务器现有的网络接口经常出现流量饱和的情况,在不提高网络速度的情况下,增加网络吞吐量的唯一方法是安装更多的网络接口。但将更多的接口连接到同一个网络并不能增加到达服务器的流量,而是需要在网络上创建额外的子网,并将计算机重新分配到这些子网中,以减少每个子网的流量。
3. 配置性能监视器警报
性能监视器是一个有用的工具,但很少有管理员有时间一直盯着折线图来跟踪服务器性能计数器。因此,可以使用“创建新数据收集器集”向导来创建性能计数器警报,当计数器达到特定值时,警报会执行一项任务,例如向管理员发送电子邮件。
创建警报的步骤如下:
1. 打开性能监视器控制台,展开“数据收集器集”文件夹。
2. 右键单击“用户定义”文件夹,在上下文菜单中选择“新建” -> “数据收集器集”。
3. 在“您希望如何创建此新数据收集器集?”页面中,为数据收集器集输入一个名称,并选择“手动创建(高级)”选项。
4. 在“您要包含哪种类型的数据?”页面中,选择“性能计数器警报”选项。
5. 在“您要记录哪些性能计数器?”页面中,单击“添加”并选择要监控的计数器。
6. 在“警报条件”下拉列表和“限制”文本框中,指定性能监视器应触发警报的值。这些值取决于所选计数器的性质。例如,监控“% Processor Time”计数器时,当值超过95%时可能希望触发警报。但对于不测量百分比的计数器,可能需要根据其他因素设置值。
7. 在“创建数据收集器集?”页面中,如果当前使用的帐户没有收集日志信息所需的权限,单击“更改”以显示一个性能监视器对话框,在其中可以提供其他凭据。
8. 选择以下选项之一:
- “打开此数据收集器集的属性”:将数据收集器集保存到指定位置,并打开其属性表以进行进一步修改。
- “立即启动此数据收集器集”:将数据收集器集保存到指定位置,并立即开始收集数据。
- “保存并关闭”:将数据收集器集保存到指定位置并关闭向导。
9. 单击“完成”。新的数据收集器集将出现在“用户定义”文件夹中。
10. 选择“用户定义”文件夹下的新数据收集器集。
11. 右键单击警报并选择“属性”。
12. 在警报的属性表中,选择“警报任务”选项卡。
13. 在提供的字段中,指定当警报触发时要运行的 Windows 管理规范任务或脚本。
14. 单击“确定”。
启动警报后,它将监控所选计数器,并在达到指定值时执行任务。在同一属性表的“警报”选项卡中,还可以配置警报的采样间隔,以避免干扰服务器性能或频繁触发不必要的警报。
4. 使用资源监视器监控工作负载
启动性能监视器控制台后,可以右键单击“监控工具”文件夹,从上下文菜单中选择“资源监视器”,以显示资源监视器窗口。
在资源监视器的“概述”选项卡上,有四个实时折线图,分别显示服务器四个主要硬件组件(CPU、磁盘、网络和内存)的信息。每个组件还有一个单独的可扩展部分,以文本形式显示更详细的信息,例如各个应用程序和进程所使用的资源。
通过检查特定应用程序和进程随时间使用的资源,可以帮助确定提高计算机性能的方法。例如,如果系统的所有物理内存经常被使用,那么系统可能会因为大量的磁盘分页而变慢。增加物理内存或减少应用程序负载可能会提高计算机的整体性能水平。
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px;
A([开始]):::startend --> B(检查服务器性能问题):::process
B --> C{是否存在瓶颈?}:::decision
C -->|是| D(确定瓶颈所在子系统):::process
D --> E{CPU 瓶颈?}:::decision
E -->|是| F(检查 CPU 计数器):::process
F --> G(根据计数器结果处理):::process
E -->|否| H{内存瓶颈?}:::decision
H -->|是| I(检查内存计数器):::process
I --> J(根据计数器结果处理):::process
H -->|否| K{磁盘瓶颈?}:::decision
K -->|是| L(检查磁盘计数器):::process
L --> M(根据计数器结果处理):::process
K -->|否| N{网络瓶颈?}:::decision
N -->|是| O(检查网络计数器):::process
O --> P(根据计数器结果处理):::process
C -->|否| Q(继续监控):::process
G --> R(配置警报):::process
J --> R
M --> R
P --> R
R --> S(使用资源监视器监控):::process
S --> T([结束]):::startend
综上所述,通过性能监视器和资源监视器等工具,结合对各个子系统计数器的监控和分析,以及合理配置警报,可以有效地定位和解决服务器性能瓶颈问题,提高服务器的性能和稳定性。
服务器性能监控与优化全解析(续)
5. 服务器相关其他特性概述
除了性能监控与优化,服务器还有一些其他重要的特性,这些特性对于服务器的稳定运行和管理也起着关键作用。
5.1 Windows Server Update Services (WSUS)
WSUS 是 Windows Server 2016 中包含的一项功能,它能让企业网络中的本地服务器充当 Windows Update 客户端的后端,就像互联网上的 Microsoft Update 服务器一样。
在企业网络中使用多个 WSUS 服务器时,需要通过指定每个服务器的上游服务器来构建架构。主要有两种配置方式:
-
副本 WSUS 服务器配置
:一个中央 WSUS 服务器从互联网上的 Microsoft Update 站点下载更新,其他站点的 WSUS 服务器从这个中央服务器获取已批准的更新。
-
自主 WSUS 服务器
:自主 WSUS 服务器从中央服务器下载所有可用更新,每个站点的管理员负责为自己的用户评估和批准更新。
WSUS 从上游服务器下载更新的过程称为同步。为了控制网络上哪些 Windows Update 客户端接收特定更新,WSUS 使用了组的系统。
5.2 Windows Defender
Windows Defender 是一种反恶意软件解决方案,在所有运行 Windows Server 2016 的服务器上会自动安装并启用。为了保持其有效性,它必须定期更新反间谍软件和防病毒定义。
5.3 Windows Server Backup
Windows Server Backup 提供了两种备份方式:
-
单备份作业
:单备份作业提供了更多的灵活性,但明显的缺点是需要有人手动创建和启动作业。
-
计划备份作业
:创建计划备份作业时,选项与单交互式作业有所不同。当对 Active Directory 域控制器进行计划备份,或者在选中“系统状态”复选框的情况下进行单备份时,Windows Server Backup 会将 Active Directory 数据库作为作业的一部分进行备份。此外,它还可以备份 Hyper - V 主机和来宾虚拟机。
6. 服务器性能监控与管理的综合流程
为了更清晰地展示服务器性能监控与管理的整体过程,以下是一个综合的流程图:
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px;
A([开始服务器管理]):::startend --> B(部署 WSUS 并配置更新架构):::process
B --> C(启用 Windows Defender 并确保定义更新):::process
C --> D(设置 Windows Server Backup 备份策略):::process
D --> E(启动性能监视器和资源监视器):::process
E --> F(定期收集性能数据):::process
F --> G{是否检测到性能问题?}:::decision
G -->|是| H(使用性能监视器定位瓶颈):::process
H --> I(根据瓶颈类型检查对应计数器):::process
I --> J(采取相应的优化措施):::process
J --> K(配置性能警报):::process
K --> F
G -->|否| F
F --> L{是否需要更新 WSUS?}:::decision
L -->|是| B
L -->|否| M(持续监控):::process
M --> N([结束管理循环]):::startend
7. 总结与建议
通过对服务器性能监控、优化以及相关特性的介绍,我们可以总结出以下几点建议,帮助管理员更好地管理服务器:
-
定期监控
:利用性能监视器和资源监视器定期收集服务器性能数据,及时发现潜在的性能问题。
-
合理配置警报
:根据服务器的实际情况,合理配置性能计数器警报,以便在出现问题时能够及时通知管理员。
-
关注服务器特性
:充分利用 WSUS 进行更新管理,确保 Windows Defender 及时更新,合理设置 Windows Server Backup 备份策略,保障服务器的安全和数据完整性。
-
优化资源
:根据性能计数器的结果,及时对 CPU、内存、磁盘和网络等资源进行优化,避免出现性能瓶颈。
以下是一个简单的表格,总结了服务器管理的关键要点:
| 管理方面 | 关键操作 |
| — | — |
| 性能监控 | 定期使用性能监视器和资源监视器收集数据,关注 CPU、内存、磁盘和网络计数器 |
| 性能优化 | 根据计数器结果升级硬件、调整配置或优化应用程序 |
| 警报配置 | 使用性能监视器创建性能计数器警报,设置合理的触发值 |
| WSUS 管理 | 部署 WSUS 服务器,配置更新架构,定期同步更新 |
| Windows Defender | 确保自动安装并启用,定期更新反间谍软件和防病毒定义 |
| Windows Server Backup | 根据需求设置单备份作业或计划备份作业,备份重要数据 |
通过遵循这些建议和操作流程,管理员可以提高服务器的性能和稳定性,减少因性能问题和安全漏洞带来的风险,为企业的业务运行提供有力的支持。
总之,服务器管理是一个综合性的任务,需要管理员全面了解服务器的各项特性和性能指标,通过科学的监控和优化手段,确保服务器始终处于良好的运行状态。
超级会员免费看

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



