我想要监控Windows机器上的内存使用情况和性能使用情况,持续时间长于8小时。我想过利用Windows性能监视器(perfmon)来实现同样的目的。但是这样,我就能够将.blg转换为.csv,以便只有在数据收集器停止数据收集之后才能获得计数器,即使数据是以5秒的间隔收集的。
有没有办法每5秒获取一次.csv格式的计数器?或者任何更好的方法来获取windows上的性能指标。
发布于 2014-08-25 20:36:26
如果您可以运行powershell脚本,则可以使用get-counter和export-counter cmdlet:
您可以在这里看到一个简单的示例:http://technet.microsoft.com/en-us/magazine/ee872428.aspx
如果您使用的是本地化窗口(非英文),则必须在此之前获取正确的计数器名称。例如,在我的法语windows版本中,它将是:
Get-counter -ListSet *
这将显示所有可用的配置项。我可以看到有一个名为"processeur“的集合,它在法语中是CPU的意思。所以现在我可以像这样得到这个集合的可用计数器:
Get-counter -ListSet "processeur" |select -expand counter
它给我的结果是:
PS>Get-counter -ListSet " processeur“|select临时计数器\Processeur()\% -expand进程
\Processeur()\% temps utilisateur
\Processeur()\% temps privilégié
\Processeur()\Interruptions/s
\Processeur()\% temps DPC
\Processeur()\% temps d‘’interruption
\Processeur()\DPC缺少附件文件
\Processeur()\Taux DPC
\Processeur()\% d‘非活动
\Processeur()\% durée C1
\Processeur()\% durée C2
\Processeur()\% durée C3
\Processeur()\转换C1/s
\Processeur()\转换C2/s
\Processeur(*)\转换C3/s
现在我可以像这样使用这些计数器中的一个或多个:
获取所有计数器:
Get-counter -ListSet "processeur" |select -expand counter | foreach{ get-counter $_ -SampleInterval 2 -MaxSamples 10}
获取非活动计数器:Get-counter -ListSet "processeur" |select -expand counter |where {$_ -match "inactivité"} | foreach{ get-counter $_ -SampleInterval 2 -MaxSamples 10}
至少,您可以将结果通过管道传输到export-counter,以便将其保存到文件(CSV、TSV或BLG)。希望这能帮上忙
发布于 2014-08-26 02:12:29
以下是如何使用export-counter获取CSV并避免执行BLG到CSV的转换(显然修改命令以满足您的需求):
Get-Counter -Counter (get-Counter -ListSet Memory).paths -MaxSamples 4 -SampleInterval 1 | Export-Counter -Path c:\temp\memory.csv -FileFormat csvhttps://stackoverflow.com/questions/25485767
复制相似问题