本文可帮助你识别和修复与 Windows Server 环境中的存储空间直通(S2D)相关的性能问题。
症状
遇到以下一个或多个性能问题:
- 访问存储在存储空间中的文件时,读取和写入速度低于预期。
- 执行磁盘密集型作业(例如,传输大型文件)时,会遇到延迟或卡顿。
- 任务管理器显示高磁盘队列长度或磁盘使用率高。
- 应用程序加载或响应所需的时间比平常长。
原因
多个因素可能会导致存储空间的性能下降或瓶颈。 以下列表包括最常见的原因:
- 驱动器配置不正确:在存储池中使用不匹配或不兼容的驱动器
- 存储空间类型不正确:为工作负荷选择错误的复原选项(例如奇偶校验而不是简单或镜像)
- 系统资源不足:内存不足或 CPU 可用性不足
- 碎片:存储池中过度碎片(数据访问速度缓慢)
- 固件和驱动程序问题:过时或不兼容的驱动器固件和驱动程序
- 后台任务:资源密集型后台任务,例如磁盘清理或修复作业
决议
按照本部分中的步骤提高存储空间的性能。
在开始排查性能问题之前,请考虑测量系统的当前性能以建立基线。 可以使用性能监视器或资源监视器等工具来收集指标。 还可以使用 DiskSpd 或 CrystalDiskMark 等第三方工具运行基准测试并收集详细的性能指标。
重要
在开始更改存储空间配置之前,请确保备份存储空间数据和配置设置。
步骤 1:收集性能指标、事件和配置信息
若要帮助识别问题,请收集以下数据:
-
存储空间配置的详细说明,包括复原类型和驱动器详细信息。 使用以下问题作为准则:
- 正在使用哪种类型的存储空间配置? 例如,简单、镜像或校验?
- 存储池的大小以及包含多少个驱动器?
- 存储池中驱动器的当前固件和驱动程序版本是什么?
- 池中的所有驱动器的类型、容量和速度是否相同?
- 系统的最新更改(如软件更新、硬件更换或新应用程序)是否已安装?
-
性能指标,例如磁盘队列长度和吞吐量。 可以使用性能监视器或任务管理器等工具来收集此信息。 还可以查看性能历史记录信息,如 Storage Spaces Direct 的性能历史记录中所述。
-
事件查看器中的日志,特别是在**“系统和** 存储空间”类别下。 包括:
- 事件查看器中与 S2D、存储池或磁盘操作相关的任何错误消息或警告。
- 任何错误消息或警报的屏幕截图或照片。
-
以下 Windows PowerShell 命令的输出:
Get-StoragePool | Get-PhysicalDisk | Select-Object DeviceID, MediaType, Size, HealthStatus Get-VirtualDisk | Select-Object FriendlyName, ResiliencySettingName, OperationalStatus Get-StoragePool | Get-StorageSubSystem | Select-Object FriendlyName, HealthStatus
步骤 2:验证存储空间配置
- 请确保池中的所有驱动器都属于同一类型(例如,所有固态硬盘(SSD)或所有硬盘驱动器(HDD)。 此外,请确保驱动器具有类似的性能特征。
- 验证存储空间类型(简单、镜像或校验)是否适合工作负荷。 有关 S2D 存储空间类型的详细信息,请参阅 深度解析:存储空间直连中的卷。
- 如果在此步骤中进行任何更改,请测试系统的性能,并将其与先前的度量进行比较。
步骤 3:查看服务器管理器和事件日志中的潜在问题
- 在服务器管理器(或使用 Windows PowerShell)中,检查存储池和其他 S2D 组件的运行状况和作状态。 有关详细信息,请参阅 故障排除存储空间和存储空间直通的运行状况及状态。
- 在事件查看器中,检查关于 Storage Spaces Direct 的警告或错误日志。
- 如果确定任何问题(如驱动器或子系统错误),请适当修正这些问题。
- 如果在此步骤中进行任何更改,请测试系统的性能,并将其与先前的度量进行比较。
步骤 4:确保驱动器的驱动程序和固件是最新的
- 验证所有驱动器是否已安装最新的固件。
- 将存储控制器和驱动器驱动程序更新为制造商支持的最新版本。
- 如果在此步骤中进行任何更改,请测试系统的性能,并将其与先前的度量进行比较。
步骤 5:运行存储维护任务
-
若要优化存储池,请在 PowerShell 命令提示符处运行以下 cmdlet:
Optimize-StoragePool -FriendlyName <StoragePoolName>注释
在此 cmdlet 中, <StoragePoolName> 是存储池的名称。 如果必须标识存储池名称,请运行
Get-StoragePool。 -
如果存储池使用 HDD 驱动器,请手动对驱动器进行碎片整理。
警告
如果存储池使用 SSD 驱动器,请不要执行此步骤。 碎片整理可以减少 SSD 驱动器的寿命和性能。
-
测试系统的性能,并将其与早期度量进行比较。
步骤 6:确定资源使用问题
- 使用监视工具(如任务管理器、性能监视器或资源监视器)确定 CPU、内存或磁盘使用情况中的瓶颈。 有关如何使用这些工具的详细信息,请参阅 方案指南:排查 Windows 中的性能问题。
- 关闭使用系统资源的任何不必要的应用程序或进程。
- 如果在此步骤中进行任何更改,请测试系统的性能,并将其与先前的度量进行比较。
步骤 7:重新生成或重新创建存储空间
如果执行了前面的步骤,并且 S2D 性能无法得到足够的改进,请考虑重新生成存储空间。 执行以下步骤:
- 确保所有备份都是最新的且可用。
- 删除现有存储空间。
- 重新创建存储空间。 使用最佳设置。
- 将数据还原到新的存储空间。
防止将来出现性能问题
若要避免将来出现 S2D 性能问题,请考虑以下准则和最佳做法:
- 确保单个存储池使用具有类似性能、容量和媒体类型的驱动器。 有关硬件要求的详细信息,请参阅 Windows Server 中的存储空间直通硬件要求。
- 定期将固件和驱动程序更新到最新的制造商推荐版本。
- 使用
Get-StoragePoolcmdletGet-PhysicalDisk监视存储池运行状况。 - 若要防止驱动器发生故障时数据丢失,请计划定期备份。
- 除非要实现分层存储,否则不要在同一存储池中混合 SSD 和 HDD 驱动器。