2016-04-14 8 views
0

私はこれをしばらく掘り下げてきました。私はかなり近いと思いますが、私はWSを見せようとするのに問題があります。TomcatのPowerShellメモリ使用

私は、アプリケーション

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 

そして、これが正常に動作ごとにメモリを示すことにかなり関連すると思われるものを見つけました。

$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 
} 

我々は

... WSは0ではありません知っている私はと書式設定の問題があると思う:だから

Mem 
--- 
4.109375 
1006.9453125 
1388.453125 

...私たちは、コンピュータの数をループにしたいですWS ..

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

は、私はこの中にかなり近いと思いました。..

これを使用するとき
$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 
} 

しかし、私は負の値を取得しています。..

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 

答えて

0

が、これは任意のを助けていますか?

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

あなたは、64ビットシステムで負の値を取得する場合は、$proc.workingset64を使用する必要があります