手机
当前位置:查字典教程网 >脚本专栏 >PowerShell >PowerShell 读取性能计数器二进制文件(.blg)记录并汇总计算
PowerShell 读取性能计数器二进制文件(.blg)记录并汇总计算
摘要:由于监控及报告需要,要统计性能计数器每天数值情况,确认数据库服务器的运行状况。若打开计数器填写,比较麻烦,现在统计用powershell来读...

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

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

$startDate = (Get-Date).AddDays(-1).Date $endDate = (Get-Date).Date $perfPath = "D:DataFilesPERFMONMSSQL_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

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

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

$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 = "hzcsystemthreads" $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:360DownloadsPerfmonCounter.txt" $resultTable.GetEnumerator() | sort Name | Export-Csv -Path "D:360DownloadsPerfmonCounter.txt" -Encoding "unicode" -Force $resultTable.GetEnumerator() | sort Name | Format-List | Export-Csv -Path "D:360DownloadsPerfmonCounter.xlsx" -Encoding "unicode" -Force

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

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

PowerShell快速创建一个指定大小文件的实例分享

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

PowerShell脚本清理指定天数前的临时文件夹实现代码

PowerShell实现的文件同步脚本分享

Powershell脚本的4种执行权限介绍

PowerShell移动目录中指定文件的方法(非全部文件)

PowerShell实现获取进程所有者

PowerShell添加本地账户脚本分享

用PowerShell删除N天前或指定日期(前后)创建(或修改)的文件

PowerShell是什么?

精品推荐
分类导航