| |
| |
| |
| |
| |
| |
| MonSubject="DiskIO" |
| strComputer = "." |
| Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") |
| |
| Set colItems = objWMIService.ExecQuery("Select * from Win32_PerfRawData_PerfDisk_LogicalDisk where name='_Total' ",,48) |
| For Each objItem in colItems |
| DiskTime1 = objItem.PercentDiskTime |
| BaseTime1 = objItem.PercentDiskTime_Base |
| DiskBytes1 = objItem.DiskBytesPerSec |
| DiskReadBytes1 = objItem.DiskReadBytesPerSec |
| DiskWriteBytes1 = objItem.DiskWriteBytesPerSec |
| AvgDiskTransfer1 = objItem.AvgDiskSecPerTransfer |
| AvgDiskTransferBase1 = objItem.AvgDiskSecPerTransfer_Base |
| AvgDiskRead1 = objItem.AvgDiskSecPerRead |
| AvgDiskReadBase1 = objItem.AvgDiskSecPerRead_Base |
| AvgDiskWrite1 = objItem.AvgDiskSecPerWrite |
| AvgDiskWriteBase1 = objItem.AvgDiskSecPerWrite_Base |
| TimeValue1 = objItem.Timestamp_PerfTime |
| TimeBase = objItem.Frequency_PerfTime |
| Next |
| |
| WScript.Sleep 1000 |
| Set colItems = objWMIService.ExecQuery("Select * from Win32_PerfRawData_PerfDisk_LogicalDisk where name='_Total' ",,48) |
| For Each objItem in colItems |
| DiskTime2 = objItem.PercentDiskTime |
| BaseTime2 = objItem.PercentDiskTime_Base |
| DiskBytes2 = objItem.DiskBytesPerSec |
| DiskReadBytes2 = objItem.DiskReadBytesPerSec |
| DiskWriteBytes2 = objItem.DiskWriteBytesPerSec |
| AvgDiskTransfer2 = objItem.AvgDiskSecPerTransfer |
| AvgDiskTransferBase2 = objItem.AvgDiskSecPerTransfer_Base |
| AvgDiskRead2 = objItem.AvgDiskSecPerRead |
| AvgDiskReadBase2 = objItem.AvgDiskSecPerRead_Base |
| AvgDiskWrite2 = objItem.AvgDiskSecPerWrite |
| AvgDiskWriteBase2 = objItem.AvgDiskSecPerWrite_Base |
| TimeValue2 = objItem.Timestamp_PerfTime |
| CurrentDiskQueueLength = objItem.CurrentDiskQueueLength |
| Next |
| |
| If BaseTime2 - BaseTime1 = 0 Then |
| strio ="Name=_Toltal" & ",PercentDiskTime=0%" |
| Else |
| PercentDiskTime =(DiskTime2 - DiskTime1)/(BaseTime2 - BaseTime1)*100 |
| strio = "Name=_Total" & ",PercentDiskTime=" & PercentDiskTime |
| End If |
| |
| If TimeValue2 - TimeValue1 = 0 Then |
| strdiskbyte = ",DiskBytesPerSec=0" |
| Else |
| DiskBytesPerSec = (DiskBytes2 - DiskBytes1) / ( (TimeValue2 - TimeValue1) / TimeBase) |
| strdiskbyte = ",DiskBytesPerSec=" & DiskBytesPerSec |
| End If |
| |
| If TimeValue2 - TimeValue1 = 0 Then |
| strdiskreadbyte = ",DiskReadBytesPerSec=0" |
| Else |
| DiskReadBytesPerSec = (DiskReadBytes2 - DiskReadBytes1) / ( (TimeValue2 - TimeValue1) / TimeBase) |
| strdiskreadbyte = ",DiskReadBytesPerSec=" & DiskReadBytesPerSec |
| End If |
| |
| If TimeValue2 - TimeValue1 = 0 Then |
| strdiskwritebyte = ",DiskWriteBytesPerSec=0" |
| Else |
| DiskWriteBytesPerSec = (DiskWriteBytes2 - DiskWriteBytes1) / ( (TimeValue2 - TimeValue1) / TimeBase) |
| strdiskwritebyte = ",DiskWriteBytesPerSec=" & DiskWriteBytesPerSec |
| End If |
| |
| If AvgDiskTransferBase2 - AvgDiskTransferBase1 = 0 Then |
| stravgdisktran = ",AvgDiskSecPerTransfer=0" |
| Else |
| AvgDiskSecPerTransfer = ((AvgDiskTransfer2 - AvgDiskTransfer1) / TimeBase) / (AvgDiskTransferBase2 - AvgDiskTransferBase1) |
| stravgdisktran = ",AvgDiskSecPerTransfer=" & AvgDiskSecPerTransfer |
| End If |
| |
| If AvgDiskReadBase2 - AvgDiskReadBase1 = 0 Then |
| stravgdiskread = ",AvgDiskSecPerRead=0" |
| Else |
| AvgDiskSecPerRead = ((AvgDiskRead2 - AvgDiskRead1) / TimeBase) / (AvgDiskReadBase2 - AvgDiskReadBase1) |
| stravgdiskread = ",AvgDiskSecPerRead=" & AvgDiskSecPerRead |
| End If |
| |
| If AvgDiskWriteBase2 - AvgDiskWriteBase1 = 0 Then |
| stravgdiskwrite = ",AvgDiskSecPerWrite=0" |
| Else |
| AvgDiskSecPerWrite = ((AvgDiskWrite2 - AvgDiskWrite1) / TimeBase) / (AvgDiskWriteBase2 - AvgDiskWriteBase1) |
| stravgdiskwrite = ",AvgDiskSecPerWrite=" & AvgDiskSecPerWrite |
| End If |
| |
| strdisklength = ",CurrentDiskQueueLength=" & CurrentDiskQueueLength |
| Wscript.Echo MonSubject & " 0:OK|" & strio & strdiskbyte & strdiskreadbyte & strdiskwritebyte & stravgdisktran & stravgdiskread & stravgdiskwrite & strdisklengthCOPY |