PowerShell的内存和CPU使用率
我所看到的 - http://technet.microsoft.com/en-us/library/hh849832.aspxPowerShell的内存和CPU使用率
而且,我已经看到了:How to get CPU usage & Memory consumed by particular process in powershell script
我明白,我可以给一个:获取进程的Tomcat * |选择-对象CPU内部PowerShell的
的而我看到的是,CPU是不是本地或远程返回的最大的问题..
我已经把下面的脚本。该CPU部分现在的工作。 。
writeHtmlHeader $TomcatMemFileName
writeTableHeader $TomcatMemFileName
[int]$i = 1
foreach ($server in Get-Content $serverlist)
{
$Computer=$server.split(",")[0]
$ip=$server.split(",")[1]
IF ($Computer -notmatch 'DB') {
$procs = Gps tomcat* -ComputerName $Computer
foreach ($proc in $procs){
$id = $proc.ID
$machine = $proc.MachineName
$process = $proc.ProcessName
$WorkingSet = [int64]($proc.WorkingSet64/1024)
$VirtualMem = [int]($proc.VM/1MB)
$cpuse= Get-Counter -computername $machine '\Process(tomcat6)\% Processor Time' | Select-Object -ExpandProperty countersamples | Select-Object -Property cookedvalue
foreach ($cpus in $cpuse){
$cpu=$cpus.cookedvalue
write-host $TomcatMemFileName $i $machine.ToUpper() $id $process $WorkingSet $VirtualMem $cpu
writeTomcatInfo $TomcatMemFileName $i $machine.ToUpper() $id $process $WorkingSet $VirtualMem $cpu
}
}
}
$i++
}
writeTablefooter $TomcatMemFileName
writeHtmlFooter $TomcatMemFileName
感谢,
肯特
你的CPU部分不工作的原因是你将它管道到Format-Table(你使用FT别名)。转到您的$cpuse =
行的末尾,并删除| ft -AutoSize
。一旦你这样做,它应该如你所期望的那样工作。我还建议像Greg那样将流程过滤移到柜台。
$cpuse= Get-Counter -computername $machine '\Process(tomcat*)\% Processor Time' | Select-Object -ExpandProperty countersamples | Select-Object -Property cookedvalue
我会假设你有权利看,如果个计数器信息其余的脚本工作...
为什么不指定在计数器中的过程名称,这样你就不必在后面过滤所有的过滤。例如:
$counter = Get-Counter '\Process(tomcat*)\% Processor Time' -ComputerName $myServer
$counter.CounterSamples.CookedValue
如果有多个Tomcat进程,你必须拆开CounterSamples集合,但它应该工作得很好。
不工作..'Get-Counter:\\ SERVER \\ Process(tomcat *)\%处理器时间性能计数器路径无效。 在D:\ WORK \ PS \ tomcat_memory.ps1:130 char:27 + $ counter = Get-Counter Leptonator 2014-09-12 18:53:29
您是否偶然使用PowerShell 2.0? PowerShell 3+允许您在计数器中使用通配符。否则,你必须使用像'tomcat','tomcat#1','Tomcat#2'等没有引号来获得每个进程的统计信息。 – 2014-09-12 19:28:27
对脚本进行了更改,该脚本可以很好地满足我们的需求:''\ Process(tomcat6)\%Processor Time'' – Leptonator 2014-09-12 19:42:54
刚刚更新了要工作的代码!谢谢@TheMadTechnician – Leptonator 2014-09-12 19:32:52