'程序名称:      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"," "

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

java+磁盘io监控_磁盘IO利用率监控VBS脚本(windows)相关推荐

  1. java采集温湿度水浸_智能电力水浸监控解决方案

    随着我国人们生活水平的不断提高,电子信息产业的高速发展,智能电网的不断推进,供配电安全也逐渐进入人们的视野,供配电系统智能化监控已成为人们不得不考虑的问题之一. 变电站/配电室故障导致的毫无征兆的断电 ...

  2. cat全链路监控_谛听全链路监控平台实践与思考

    一.项目背景 近几年,信也科技的研发技术伴随着业务的快速增长逐步演化为微服务化的分布式体系架构,但随之带来的系统间的上下游依赖关系的复杂度也呈指数级上升,已有的烟囱式的监控产品(CAT.ELK等)存在 ...

  3. mysql pt监控_技术分享 | MySQL 监控利器之 Pt-Stalk

    作者:xuty 本文来源:原创投稿 *爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源. 一.概述 之前在社区发了一篇[有效解决 MySQL 行锁等待超时问题]文档,主要介绍 ...

  4. python微服务监控_如何用zabbix监控微服务

    配置zabbix_agent.conf,通过shell脚本weifuwu.sh读取/etc/zabbix/scripts/tmp.txt内容,作为自定义zabbix键值获取到的内容返回给zabbix ...

  5. word保存不了磁盘已满_磁盘到底该不该分区?容量不够怎么办?

    据说99%的人都有磁盘分区的习惯?这么巧,你也是? 可是随着SSD(固态硬盘)的普及使用,又据说SSD分区会导致空间浪费和性能下降? 其实,SSD分两到三个区不管从空间还是性能上,都是完全OK的.分不 ...

  6. 普罗米修斯 监控_接近完美的监控系统—普罗米修斯

    普罗米修斯(Prometheus)是一个SoundCloud公司开源的监控系统.当年,由于SoundCloud公司生产了太多的服务,传统的监控已经无法满足监控需求,于是他们在2012年决定着手开发新的 ...

  7. curl循环监控_阿里巴巴开源性能监控神器Arthas

    线上经常遇到MQ消费速度忽高忽低,但是线下测试却没有问题.那会是哪一个问题引起的呢?因为影响MQ消费速度的因素太多了,如下因素只要任何一种出现问题,就会影响MQ消费速度. JVM内存过高,一直在Ful ...

  8. 普罗米修斯 监控_完美的分布式监控系统——普罗米修斯

    DevOps工程师或SRE工程师,可能都知道Prometheus普罗米修斯.Prometheus于2012年由SoundCloud创建,目前已经已发展为最热门的分布式监控系统.Prometheus完全 ...

  9. mysql 表结构监控_性能测试之mysql监控、优化

    共享表空间还有一个缺点就是不能自动收缩,自动收缩是什么意思呢,刚建表的时候,表里面数据很少,就1条数据,可能占用空间就几kb,到后来数据多了,占用了10个G的空间,然后发现有一些数据都是垃圾数据,删了 ...

最新文章

  1. python如何把两个dataframe合并成一个
  2. android selector下的设置背景属性值
  3. mysql反模式_MongoDB报表实例 -- 标签成员方案
  4. 媒体查询media的3种引入方式
  5. JAVA集合(笔记)
  6. [转载] SimpleHTTPServer解释:如何使用Python发送文件
  7. Java基础教程汇总
  8. golang微服务网关
  9. 如何利用快解析快速实现动态域名解析,内网穿透?
  10. java分享微博_java_java实现的新浪微博分享代码实例,weibo.java {@link IWeiboShareAPI#handle - phpStudy...
  11. MySQL数据库(一)服务器数据库的搭建和远程访问
  12. ORcad Capture CIS元件库管理
  13. buctoj-python 2022.5.19
  14. IF: 8+ m6A调控因子与m6A相关的lnc/mRNA作为结直肠癌预后因子的综合性分析
  15. python中合法的赋值语句y=y+1_关于Python赋值语句,以下选项中不合法的是 _________ 。_学小易找答案...
  16. 智慧树大数据分析python答案_智慧树大数据分析的python基础答案
  17. APP漏洞防护方案与防攻击解决办法
  18. Java Web创建并运行一个简单的网页
  19. c++语言题库,C++题库完整版.doc
  20. 《蔡康永的说话之道》阅读笔记

热门文章

  1. ROS----小乌龟画爱心
  2. 关于SQL server 2000 在安装过程中遇到文件挂起的解决办法
  3. VS2015调试dump文件时提示未找到xxx.exe或xxx.dll
  4. apk ipa sis 各是什么东西
  5. Apache Kafka实战读书笔记(推荐指数:☆☆☆☆☆)
  6. 互联网公司的技术博客汇总-BAT等
  7. 构造散列表 (20 分)
  8. 出价策略正处于学习期...
  9. jenkins安装和配置(二):配置第一个项目
  10. 仿微信打开红包旋转动画