PowerShell 读取性能计数器二进制文件(.blg)记录并汇总计算_PowerShell

由于监控及报告需要,要统计性能计数器每天数值情况,确认数据库服务器的运行状况。若打开计数器填写,比较麻烦,现在统计用 powershell 来读取计数器的值。

第一阶段:Powershell 读取计数器文件并统计其中一个计数器的值

$startDate = (Get-Date).AddDays(-1).Date
$endDate = (Get-Date).Date
$perfPath = "D:\DataFiles\PERFMON\MSSQL_PERFMON_08240904.blg" 

#读取文件中的计数器名称
$counterList = Import-Counter -Path $perfPath
$countersNameList = $counterList[0].countersamples | % {$_.path} 

#筛选指定计数器和时间重新导入PS
$counter = $countersNameList -like '*Processor Time*'
$counterData = Import-Counter -Path $perfPath -Counter $counter | Where-Object -FilterScript {($_.Timestamp -ge $startDate) -and ($_.Timestamp -lt $endDate)}  

#计算日期范围内的数值统计
$counterInfo = $counterData | Foreach-Object {$_.CounterSamples} | Measure-Object -property CookedValue -Average -Maximum 

#哈希表存储结果数据
$resultTable=@{}
$resultTable."CPU 利用率——平均" = $counterInfo.Average
$resultTable."CPU 利用率——最大" = $counterInfo.Maximum 

$resultTable 

第二阶段:批量统计文件中的所有计数器并导出到文件中

$startDate = (Get-Date).AddDays(-1).Date
$endDate = (Get-Date).Date
$perfPath = "D:\360Downloads\*.blg" 

#哈希表存储结果数据
$resultTable=@{} 

#导入指定时间的所有计数器信息
$counterData = Import-Counter -Path $perfPath | Where-Object -FilterScript {($_.Timestamp -ge $startDate) -and ($_.Timestamp -lt $endDate)} 

#所有的计数器名字
$countersNameList = $counterData[0].countersamples | % {$_.Path} 

#遍历每个计数器,将计算结果存储到哈希表中
foreach($counterName in $countersNameList)
{
#$counterName = "\\hzc\system\threads"
$counterDataOne = $counterData | Foreach-Object {$_.CounterSamples} | Where {$_.Path -like $counterName}
$counterInfo = $counterDataOne | Measure-Object CookedValue -Average -Minimum -Maximum
$resultTable.$($counterName+" :平均值") = $counterInfo.Average
$resultTable.$($counterName+" :最小值") = $counterInfo.Minimum
$resultTable.$($counterName+" :最大值") = $counterInfo.Maximum
} 

#$resultTable.GetEnumerator() | sort Name | Format-Table -Auto
#几种方法导出到文件
$resultTable.GetEnumerator() | sort Name | Format-Table -Auto | Out-File "D:\360Downloads\PerfmonCounter.txt"
$resultTable.GetEnumerator() | sort Name | Export-Csv -Path "D:\360Downloads\PerfmonCounter.txt" -Encoding "unicode" -Force
$resultTable.GetEnumerator() | sort Name | Format-List | Export-Csv -Path "D:\360Downloads\PerfmonCounter.xlsx" -Encoding "unicode" -Force 

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索二进制文件
, powershell
性能计数器
二进制计数器、异步二进制加法计数器、四位二进制计数器、同步二进制计数器、异步二进制计数器,以便于您获取更多的相关知识。

时间: 2024-09-19 20:29:37

PowerShell 读取性能计数器二进制文件(.blg)记录并汇总计算_PowerShell的相关文章

Powershell读取PFX证书并输入密码的脚本分享_PowerShell

支持所有PS版本 当你使用Get-PfxCertificate读取PFX证书去签名你的脚本,但是它总是会已交互式方式提示用户去输入密码. 下面介绍怎么通过脚本去提交密码: 复制代码 代码如下: $PathToPfxFile = 'C:\temp\test.pfx' $PFXPassword = 'test'   Add-Type -AssemblyName System.Security $cert = New-Object System.Security.Cryptography.X509Ce

mysql千万级数据库插入速度和读取速度的调整记录

  (1)提高数据库插入性能中心思想:尽量将数据一次性写入到Data File和减少数据库的checkpoint 操作.这次修改了下面四个配置项: 1)将 innodb_flush_log_at_trx_commit 配置设定为0:按过往经验设定为0,插入速度会有很大提高. 0: Write the log buffer to the log file and flush the log file every second, but do nothing at transaction commi

PowerShell小技巧之定时记录操作系统行为_PowerShell

作为系统管理员,有些时候是需要记录系统中的其他用户的一些操作行为的,例如:当系统管理员怀疑系统存在漏洞,且已经有被植入后门或者创建隐藏账户时,就需要对曾经登陆的用户进行监控,保存其打开或者操作过的文件.或者在另外一个场景,当黑客拿下一个普通权限的shell之后,想看看最近有哪些用户登陆过,操作过什么,以便根据用户习惯采取进一步行动获取更高权限,这个时候记录用户行为就显得很重要了.       可能有读者觉得此时安装个监控软件不就行了么,拜托,你入侵别人的系统,你装个监控软件,你把管理员试做无物么

请问如何实现使用javaServlet读取mysql数据库的记录?

问题描述 我现在需要从一个mysql数据库表里边读取记录,请问如何用servlet实现,各位高手可以给我一个这方面的小例子吗?最好是有源代码,非常紧急,谢谢各位了.(我已经实现使用servlet写入mysql数据库,但是不知道如何读取出来,请各位老师在这个问题上给予指点,谢谢) 解决方案 解决方案二:相信你是会写servlet的.其次连接数据库也是不难的,只要在serlvet里写一个连接数据库的方法读出数据库内容发送出去在页面读取.解决方案三:会操作数据库,肯定可以执行查询语句啦,把数据取出来封

mysql数据库插入速度和读取速度的调整记录_Mysql

(1)提高数据库插入性能中心思想:尽量将数据一次性写入到Data File和减少数据库的checkpoint 操作.这次修改了下面四个配置项: 1)将 innodb_flush_log_at_trx_commit 配置设定为0:按过往经验设定为0,插入速度会有很大提高. 0: Write the log buffer to the log file and flush the log file every second, but do nothing at transaction commit.

PowerShell读取文件内容、替换文件内容、读取限定行的例子_PowerShell

我只能说,使用PowerShell来读取文本文件实在是一件太简单的事情了. Get-Content,获取指定位置的项的内容. 语法:Get-Content [-Path] <文件路径> [-Path]由方括号引起,表示可以写,也可以不写:不写则默认后面是文件路径,写了就指名道姓的说后面是文件路径. 直接运行这样一个命令,PowerShell将会把文件的内容输出到控制台上,如果你是想看看文件的内容,那这样做就Perfect! 但有时候,你想玩点高难度的运作--想把文件翻开来对里面的内容进行修改,

PowerShell读取文本文件指定行内容的方法_PowerShell

本文介绍一个PowerShell中如何一步到位的获取到一个文本文件的第N行.比如一个文本文件,它有1000行,我想把第500行的内容直接取出来的,最简单的方法是通过PowerShell来实现. 在PowerShell中,可以通过Get-Content这个cmdlet来获取文本文件的内容.Get-Content将一个文本文件读取到一个数组中,每一个数组元素就是文件的一行内容.比如一个文本文件内容如下: 复制代码 代码如下: 111 222 333 那么,使用Get-Content获取到一个数组,数

读取一个文件以二进制形式打开(读取任意二进制文件),用JFreeChart来画出曲线图

问题描述 rt,LZ实在能力太简单,完成不了,求大神帮忙解决.具体要求如下:1.可以打开任意一个二进制文件,然后以曲线形式显示在自己构建的Chart窗口中2.可以显示多个通道,比如1通道用于显示原始数据,2通道用于显示对原始数据的处理(微分.积分等处理)3.具有数据拖动查找功能,通常而言,屏幕宽度并不能够显示整个数据文件,因此通过前后拖动滚动条来定位不同时间段的数据4.通过用户交互可以压缩和扩展显示数据 解决方案 解决方案二:修改一下我的内容,慎重思考之后我还是打算自己开始做,不能做一个老依赖别

Powershell小技巧之记录脚本的操作_PowerShell

你可能知道在PS控制台(不是ISE编辑器),你可以打开脚本日志" 复制代码 代码如下: PS> Start-Transcript 你将记录所有输入的命令和所有的结果到这个文件.不幸的是它虽然运行在脚本中,但你不能准确看到脚本命令. 这里有一个在你脚本执行时记录全部命令方法.在你尝试这个方法之前,你可能会意识到这将增大日志文件的大小和降低脚本执行速度,因为在这个循环中,中间的迭代也将被记录. 下面命令将打开全部脚本的日志: 复制代码 代码如下: PS> Set-PSDebug -Tra