2016-04-14 12 views
0

Ich habe seit einer Weile daran gegraben. Ich glaube, ich bin ziemlich nah dran, aber ich habe Probleme, den WS zu zeigen.PowerShell Memory Usage für Tomcat

Ich habe gefunden, was

pro Anwendung zeigt Speicher ziemlich relevant scheint

http://www.lmftfy.com/index.php/powershell-get-memory-used-by-a-group-of-processes/

https://foobarcode.wordpress.com/2014/12/12/memory-usage-grouped-by-process-name/

ps tomcat* -ComputerName computerA | Group ProcessName | Select @{Label="Mem";Expression={($_.group |Measure WorkingSet -sum).Sum/1MB }} | Sort Mem 

Und das funktioniert gut.

Mem 
--- 
4.109375 
1006.9453125 
1388.453125 

So ... Wir wollen durch eine Reihe von Computern Schleife:

$procs = get-process tomcat* -ComputerName computerA 
    foreach ($proc in $procs){ 
    $WorkingSet = '{0:N0}' -f [int](Group ProcessName | Select (@{Label="Mem";Expression={($proc.group |Measure WorkingSet -sum).Sum/1MB }})) 
    $VirtualMem = '{0:N0}' -f [int]($proc.VM/1MB) 
     write-host 'WS' $WorkingSet 
     write-host 'VM' $VirtualMem 
} 

Wir wissen, dass der WS nicht 0 ist ..

Ich glaube, ich habe ein Problem mit Formatierung der WS ..

WS 0 
VM 1,523 
WS 0 
VM 60 
WS 0 
VM 1,917 

ich dachte, ich in dieser ziemlich nahe war ..

$procs = get-process tomcat* -ComputerName computerA 
    foreach ($proc in $procs){ 
    $name = $proc.MachineName 
    $process = $proc.ProcessName 
    $WorkingSet = '{0:N0}' -f [int]($proc.WS/1MB) 
    $VirtualMem = '{0:N0}' -f [int]($proc.VM/1MB) 
    write-host $name $process 'WS' $WorkingSet 'VM' $VirtualMem 
} 

Aber ich bin immer negative Werte, wenn diese mit ..

Tomcat Memory Usage Report - 04/14/2016       
# Server Process ID (PID) Process Name Working Set(Kb) Virtual Memory(Mb) 
25 Server24 5876 tomcat6 1,471 -251  
26 Server25 5832 tomcat6 -1,536 -1,118 
27 Server26 1824 tomcat6 -1,497 -1,133 
28 Server27 7916 tomcat6 1,661 -1,013 
29 Server28 6340 tomcat6 888 1,690 
30 Server29 6700 tomcat6 -1,242 1,611 
31 Server30 9880 Tomcat6 1,007 1,523 

Antwort

0

dieses jede mögliche Hilfe Hat?

(Get-Counter -ListSet Process | Get-Counter) | 
Where {$_.InstanceName -eq 'TomCat' -and $_.path -like '*working set*'} 
0

Sie sollten $proc.workingset64 verwenden, wenn Sie in 64-Bit-Systemen negative Werte erhalten