たかまるの雑記

たまに更新

PowerShellでメモリ/CPU/プロセスを確認する

メモリの使用量、CPU時間、プロセスを表示します。

メモリ使用率

get-wmiobject win32_operatingsystem | ft -a `
@{label="FreePhysicalMemory";expression={$_.FreePhysicalMemory/1KB};formatstring="#,0.00 MB"},
@{label="TotalVisibleMemorySize";expression={$_.TotalVisibleMemorySize/1KB};formatstring="#,0.00 MB"},
@{label="Phisical momory usage";expression={($_.TotalVisibleMemorySize - $_.FreePhysicalMemory) / $_.TotalVisibleMemorySize};formatstring="#0.00 %"},
@{label="FreeVirtualMemory";expression={$_.FreeVirtualMemory/1KB};formatstring="#,0.00 MB"},
@{label="TotalVirtualMemorySize";expression={$_.TotalVirtualMemorySize/1KB};formatstring="#,0.00 MB"},
@{label="Virtual momory usage";expression={($_.TotalVirtualMemorySize - $_.FreeVirtualMemory) / $_.TotalVirtualMemorySize};formatstring="#0.00 %"}

CPU時間

get-wmiobject win32_perfformatteddata_perfos_processor | ft -a Name,PercentProcessorTime

プロセス一覧(メモリ使用量の降順)

ps | % {$id=$_.id;$p=(get-wmiobject win32_process -filter processid=$id);
add-member -inputobject %_ -name "Owner" -membertype noteproperty -value $p.getowner().user;
add-member -inputobject $_ -name "ParentProcessId" -membertype noteproperty -value $p.ParentProcessId -passthru;} |
sort -p workingset64 -desc |
ft -a Id,Name,@{label="WorkingSet";expression={$_.WorkingSet64/1MB};formatstring="#,0.00 MB"},
@{label="VirtualMemorySize";expression={$_.VirtualMemorySize64/1MB};formatstring="#,0.00 MB"},
StartTime,ParentProcessId,Description,Path