获取Windows服务器中的IO服务时间(svctm),等待时间(等待),%util

Pra*_*haT 6 windows io command-line command-line-interface

我们在UNIX中使用iostat在unix中获取所有这些信息.我在windows中可以做什么?目前我们使用typeperf.

Dan*_*ite 0

Windows 拥有的每项统计信息都可以使用其 Powershell API 访问:

获取计数器 https://technet.microsoft.com/en-us/library/hh849685.aspx

因此,举例来说,如果您这样做:

Set-Alias grep Select-String
(Get-Counter -List PhysicalDisk).PathsWithInstances | grep "C:"
Run Code Online (Sandbox Code Playgroud)

您将获得 C: 驱动器的所有统计信息列表

\PhysicalDisk(0 C:)\Current Disk Queue Length
\PhysicalDisk(0 C:)\% Disk Time
\PhysicalDisk(0 C:)\Avg. Disk Queue Length
\PhysicalDisk(0 C:)\% Disk Read Time
\PhysicalDisk(0 C:)\Avg. Disk Read Queue Length
\PhysicalDisk(0 C:)\% Disk Write Time
\PhysicalDisk(0 C:)\Avg. Disk Write Queue Length
\PhysicalDisk(0 C:)\Avg. Disk sec/Transfer
\PhysicalDisk(0 C:)\Avg. Disk sec/Read
\PhysicalDisk(0 C:)\Avg. Disk sec/Write
\PhysicalDisk(0 C:)\Disk Transfers/sec
\PhysicalDisk(0 C:)\Disk Reads/sec
\PhysicalDisk(0 C:)\Disk Writes/sec
\PhysicalDisk(0 C:)\Disk Bytes/sec
\PhysicalDisk(0 C:)\Disk Read Bytes/sec
\PhysicalDisk(0 C:)\Disk Write Bytes/sec
\PhysicalDisk(0 C:)\Avg. Disk Bytes/Transfer
\PhysicalDisk(0 C:)\Avg. Disk Bytes/Read
\PhysicalDisk(0 C:)\Avg. Disk Bytes/Write
\PhysicalDisk(0 C:)\% Idle Time
\PhysicalDisk(0 C:)\Split IO/Sec
Run Code Online (Sandbox Code Playgroud)

来自 iostat 的手册页(http://linuxcommand.org/man_pages/iostat1.html

svctm
    The  average  service  time  (in  milliseconds)  for  I/O
    requests that were issued to the device.
await
    The average  time  (in  milliseconds)  for  I/O  requests
    issued to the device to be served. This includes the time
    spent by the requests in queue and the time spent servicing them.
Run Code Online (Sandbox Code Playgroud)

我遵循这些解释:
https://unix.stackexchange.com/questions/104192/iostat-await-vs-svctm
http://www.xaprb.com/blog/2010/09/06/beware-of-svctm -in-linuxs-iostat/

包括不应该再使用svctm的讨论。

如果您看到https://blogs.technet.microsoft.com/askcore/2012/02/07/measuring-disk-latency-with-windows-performance-monitor-perfmon/,您会看到 Windows 有类似的东西。

名为“\PhysicalDisk(*)\Avg. Disk sec/Transfer”的计数器测量花费在以下各项上的时间:
- 类驱动程序
- 端口驱动程序
- 设备微型端口驱动程序
- 磁盘子系统

因此,例如我们可以通过以下方式监控这些统计数据:

Get-Counter -Counter "\PhysicalDisk(0 C:)\% Disk Time"
Get-Counter -Counter "\PhysicalDisk(0 C:)\Avg. Disk sec/Transfer"
Run Code Online (Sandbox Code Playgroud)

或者,如果您愿意,可以选择更“流水线”的版本:

"\PhysicalDisk(0 C:)\% Disk Time","\PhysicalDisk(0 C:)\Avg. Disk sec/Transfer" >> counters.txt
cat counters.txt | Get-Counter
Run Code Online (Sandbox Code Playgroud)

有关每个计数器的更详细说明,请参阅:
https://blogs.technet.microsoft.com/askcore/2012/03/16/windows-performance-monitor-disk-counters-explained/