首页 > 代码库 > 磁盘性能监控
磁盘性能监控
对磁盘 I/O 活动的监控可通过如下几个性能计数器来度量:
- PhysicalDisk 相关的性能计数器主要针对物理磁盘,如果同一物理磁盘上有多个分区,则该计数器计算的是所有分区的和。
- LogicalDisk 相关的性能计数器主要针对逻辑分区,通过挂载点或磁盘驱动器号来指定,而不是监控整个磁盘。
其中,Avg. Disk sec/Read 和 Avg. Disk sec/Write 是两个主要考量磁盘 I/O 性能的计数器,它们不需要额外的信息作为参考,可以直接判断 I/O 请求的平均延迟。
Avg. Disk sec/Read
描述从磁盘对数据进行一个读操作所需的平均时间(单位:秒)。
Avg. Disk Sec/Read is the average time in seconds of a read of data from the disk.
下面列出了参数值范围所代表的意义:
这里列出的数字均为一般参考,对于有特殊需求的应用,对磁盘参数会有更高的要求。
Avg. Disk sec/Write
描述了从磁盘对数据进行一个写操作所需的平均时间(单位:秒)。
Avg. Disk Sec/Write is the average time in seconds of a write of data to the disk.
下面列出了参数值范围所代表的意义:
实际上,参数范围含义与 Avg. Disk sec/Read 是类似的。
如果大多数磁盘驱动器出现比较高的延迟,则瓶颈可能出现在通信介质(Communication Medium),例如 SAN HBA、交换机、光纤、前端适配器 CPU 和缓存等。如果只有一个或少数几个驱动器出现延迟,则瓶颈通常会是磁盘组(JBOD:Just a Bunch of Disks),进一步调查则需要查看指定磁盘驱动器上的其他计数器的值。
JBOD (for "just a bunch of disks," or sometimes "just a bunch of drives") is an array of hard disks that haven‘t been configured according to the RAID (redundant array of independent disks) system.
Disk Transfers/sec
Disk Bytes/sec 和 Disk Transfers/sec 两个性能计数器常被用来观测 I/O 请求的规模和数量,用以判断是否是 JBOD 问题还是通信介质问题,然后通过 Avg. Disk Queue Length 计数器来判断是否是通信介质问题。
Disk Transfers/sec 实际上是由 Disk Reads/sec 和 Disk Writes/sec 两个计数器组成。
Disk Transfers/sec = Disk Reads/sec + Disk Writes/sec
通过上面的计数器的值可以判断是否驱动器没有足够的磁盘支撑,以判断在给定数量磁盘上所做的 RAID 是否合理。可以根据下表中列出的公式来计算应该使用哪种 RAID 类型。
例如:通常,一个 15000 RPM(每分钟转数,Revolutions Per Minute)的磁盘的能力大概是 180 IOPS(I/O requests per second)左右。如果 Disk Transfers/sec 的最大值是 1800,则有 1800/180 = 10,那么驱动器至少需要 10 个 15000 RPM 的磁盘组成 RAID 组。
如果判断延迟是由于磁盘数量问题导致,则可以考虑如下方案:
- 使用更快的磁盘。
- 将频繁访问的文件移动到单独的磁盘。
- 向 RAID 阵列中添加更多的磁盘。
- 使用更快的 RAID 类型。
- 停止与其他卷共享磁盘。
如果判断延迟是由于传输介质问题导致,则可以考虑如下方案:
- 将频繁访问的文件移动到单独的磁盘。
- 验证 SAN 的高速缓存。
- 使用多种渠道。
参考资料
- Monitoring Disk Usage
- Windows Performance Monitor Disk Counters Explained
- Top Six FAQs on Windows 2000 Disk Performance
- Troubleshooting Slow Disk I/O in SQL Server
- PhysicalDisk Object
- Creating a custom performance monitor counter for SQL Server
- How to use the SQLIOSim utility to simulate SQL Server activity on a disk subsystem
本文《磁盘性能监控》由 Dennis Gao 发表自博客园,未经作者本人同意禁止任何形式的转载,任何自动或人为的爬虫转载行为均为耍流氓。
磁盘性能监控