常春岛资源网 Design By www.syssdc.com
核心代码
'程序名称: btlwchk_DiskIO.vbs
'版权信息: Copyright (c) 2011 guangzhou bluetech technology Incorporated.All rights reserved
'程序用途: 监测windows主机IO利用率
'创建日期: 2011-08-10
'作者信息: zhangkai
'运行环境: vbs
'处理参数
MonSubject="DiskIO"
Set Args=WScript.Arguments
If (Args.Count<1) Then
Wscript.Echo MonSubject & " -1:command line error"
WScript.Quit(3)
End If
strcid=Args(0)
'获取工作目录
tmparr=Split(Wscript.ScriptFullName,"\",-1)
g_strworkdir=tmparr(0)
narr=UBound(tmparr,1)
For i=1 to narr-3
g_strworkdir=g_strworkdir & "\" & tmparr(i)
Next
'装载公共库
set g_fileSys = createObject ("Scripting.FileSystemObject")
Sub includeFile (fSpec)
dim file, fileData
set file = g_fileSys.openTextFile (fSpec)
fileData = file.readAll ()
file.close
executeGlobal fileData
set file = nothing
end sub
includeFile g_strworkdir & "\nagios\libexec\libcomm.vbs"
'输出版本和帮助信息
getverhelp strcid,"v1.00"," <cid>"
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
'第1次采样IO
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
'第2次采样IO
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
'获取IO利用率
If BaseTime2 - BaseTime1 = 0 Then
strio ="Name=_Toltal" & ",PercentDiskTime=0%"
Else
PercentDiskTime =(DiskTime2 - DiskTime1)/(BaseTime2 - BaseTime1)*100
strio = "Name=_Total" & ",PercentDiskTime=" & PercentDiskTime
End If
'获取Disk Bytes/sec
If TimeValue2 - TimeValue1 = 0 Then
strdiskbyte = ",DiskBytesPerSec=0"
Else
DiskBytesPerSec = (DiskBytes2 - DiskBytes1) / ( (TimeValue2 - TimeValue1) / TimeBase)
strdiskbyte = ",DiskBytesPerSec=" & DiskBytesPerSec
End If
'获取Disk Read Bytes/sec
If TimeValue2 - TimeValue1 = 0 Then
strdiskreadbyte = ",DiskReadBytesPerSec=0"
Else
DiskReadBytesPerSec = (DiskReadBytes2 - DiskReadBytes1) / ( (TimeValue2 - TimeValue1) / TimeBase)
strdiskreadbyte = ",DiskReadBytesPerSec=" & DiskReadBytesPerSec
End If
'获取Disk Write Bytes/sec
If TimeValue2 - TimeValue1 = 0 Then
strdiskwritebyte = ",DiskWriteBytesPerSec=0"
Else
DiskWriteBytesPerSec = (DiskWriteBytes2 - DiskWriteBytes1) / ( (TimeValue2 - TimeValue1) / TimeBase)
strdiskwritebyte = ",DiskWriteBytesPerSec=" & DiskWriteBytesPerSec
End If
'获取Avg. Disk sec/Transfer
If AvgDiskTransferBase2 - AvgDiskTransferBase1 = 0 Then
stravgdisktran = ",AvgDiskSecPerTransfer=0"
Else
AvgDiskSecPerTransfer = ((AvgDiskTransfer2 - AvgDiskTransfer1) / TimeBase) / (AvgDiskTransferBase2 - AvgDiskTransferBase1)
stravgdisktran = ",AvgDiskSecPerTransfer=" & AvgDiskSecPerTransfer
End If
'获取Avg. Disk sec/Read
If AvgDiskReadBase2 - AvgDiskReadBase1 = 0 Then
stravgdiskread = ",AvgDiskSecPerRead=0"
Else
AvgDiskSecPerRead = ((AvgDiskRead2 - AvgDiskRead1) / TimeBase) / (AvgDiskReadBase2 - AvgDiskReadBase1)
stravgdiskread = ",AvgDiskSecPerRead=" & AvgDiskSecPerRead
End If
'获取Avg. Disk sec/Write
If AvgDiskWriteBase2 - AvgDiskWriteBase1 = 0 Then
stravgdiskwrite = ",AvgDiskSecPerWrite=0"
Else
AvgDiskSecPerWrite = ((AvgDiskWrite2 - AvgDiskWrite1) / TimeBase) / (AvgDiskWriteBase2 - AvgDiskWriteBase1)
stravgdiskwrite = ",AvgDiskSecPerWrite=" & AvgDiskSecPerWrite
End If
'获取Current Disk Queue Length
strdisklength = ",CurrentDiskQueueLength=" & CurrentDiskQueueLength
Wscript.Echo MonSubject & " 0:OK|" & strio & strdiskbyte & strdiskreadbyte & strdiskwritebyte & stravgdisktran & stravgdiskread & stravgdiskwrite & strdisklength
用到了WMI,需要的朋友可以参考一下
标签:
VBS,磁盘,IO,利用率
常春岛资源网 Design By www.syssdc.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
常春岛资源网 Design By www.syssdc.com
暂无评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
2025年11月01日
2025年11月01日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]