【tasklist】コマンドプロンプトから物理メモリの利用状況をプロセス単位で確認する

スポンサーリンク

Windows でメモリの状況を確認したい場合は tasklist コマンドが使えます。

TEST

1. 基本的な使い方

コマンドプロンプトを起動し tasklist コマンドを実行すると、プロセスごとのメモリ使用量を表示できます。
※参考:「コマンドプロンプト」の開き方

tasklist コマンドで表示されるメモリ使用量はワーキングセット (プライベートワーキングセット + 共有ワーキングセット) となります・

CMD> tasklist

イメージ名                     PID セッション名     セッション# メモリ使用量
========================= ======== ================ =========== ============
System Idle Process              0 Services                   0          8 K
System                           4 Services                   0         20 K
Registry                       196 Services                   0     27,816 K
smss.exe                       608 Services                   0        396 K
csrss.exe                      840 Services                   0      2,840 K
wininit.exe                    928 Services                   0      1,312 K
csrss.exe                      936 Console                    1      4,952 K
services.exe                  1000 Services                   0      6,148 K
lsass.exe                     1020 Services                   0     15,628 K
winlogon.exe                   808 Console                    1      6,060 K
svchost.exe                   1128 Services                   0     25,024 K
WUDFHost.exe                  1156 Services                   0      2,784 K
<略>

エクセルで分析したい場合は tasklist /fo csv のようにCSV形式で出力させましょう。

CMD> tasklist /fo csv
"イメージ名","PID","セッション名","セッション#","メモリ使用量"
"System Idle Process","0","Services","0","8 K"
"System","4","Services","0","20 K"
"Registry","196","Services","0","27,352 K"
"smss.exe","608","Services","0","396 K"
"csrss.exe","840","Services","0","2,884 K"
"wininit.exe","928","Services","0","1,312 K"
"csrss.exe","936","Console","1","5,440 K"
"services.exe","1000","Services","0","6,164 K"
"lsass.exe","1020","Services","0","15,612 K"
"winlogon.exe","808","Console","1","6,076 K"
"svchost.exe","1128","Services","0","25,048 K"
"WUDFHost.exe","1156","Services","0","2,784 K"
<略>

プロセスがどのサービスと紐づいているか調べたい場合はtasklist /svc /fo csv を使います。svchost.exe のようなサービスをホストするプロセスでも、PIDでサービスと紐づけることができ、どのサービスがどれくらいのメモリを消費しているかがわかります。
※参考: svchost.exe (サービスホスト) とは

CMD> tasklist /svc

イメージ名                     PID サービス
========================= ======== ============================================
System Idle Process              0 N/A
System                           4 N/A
Registry                       196 N/A
smss.exe                       608 N/A
csrss.exe                      840 N/A
wininit.exe                    928 N/A
csrss.exe                      936 N/A
services.exe                  1000 N/A
lsass.exe                     1020 EFS, KeyIso, SamSs, VaultSvc
winlogon.exe                   808 N/A
svchost.exe                   1128 BrokerInfrastructure, DcomLaunch, PlugPlay,
                                   Power, SystemEventsBroker
WUDFHost.exe                  1156 N/A
fontdrvhost.exe               1172 N/A
fontdrvhost.exe               1180 N/A
svchost.exe                   1300 RpcEptMapper, RpcSs
svchost.exe                   1340 LSM
dwm.exe                       1416 N/A
svchost.exe                   1488 TermService
svchost.exe                   1524 bthserv
<略>

2. その他オプション

1. プロセス名で昇順にソートする

tasklist | sort でプロセス名で昇順にソートできます。

CMD> tasklist | sort

========================= ======== ================ =========== ============
AggregatorHost.exe            5128 Services                   0      2,216 K
ApplicationFrameHost.exe      5712 Console                    1     42,596 K
armsvc.exe                    3824 Services                   0      1,752 K
backgroundTaskHost.exe        8348 Console                    1      1,292 K
backgroundTaskHost.exe       10156 Console                    1        164 K
backgroundTaskHost.exe       10956 Console                    1     11,468 K
CalculatorApp.exe             8788 Console                    1     97,272 K
chrome.exe                    2372 Console                    1    205,672 K
chrome.exe                    2944 Console                    1      7,404 K
chrome.exe                    4208 Console                    1     10,720 K
chrome.exe                    4476 Console                    1     72,696 K
chrome.exe                    7076 Console                    1    106,176 K
chrome.exe                    7164 Console                    1    116,372 K
chrome.exe                    8636 Console                    1     93,800 K

2. プロセス名で降順にソートする

tasklist | sort /R でプロセス名で昇順にソートできます。

CMD> tasklist | sort /R
イメージ名                     PID セッション名     セッション# メモリ使用量
ZeroConfigService.exe         4020 Services                   0      4,696 K
WUDFHost.exe                  1156 Services                   0      2,784 K
WMIRegistrationService.ex     3956 Services                   0      2,284 K
WmiPrvSE.exe                 20776 Services                   0      9,820 K
WmiPrvSE.exe                  5996 Services                   0      3,148 K
winlogon.exe                   808 Console                    1      6,084 K
wininit.exe                    928 Services                   0      1,312 K
Widgets.exe                   1348 Console                    1      2,696 K
vmware-usbarbitrator64.ex     4496 Services                   0      3,628 K
vmware-authd.exe              4392 Services                   0      2,260 K
vmnetdhcp.exe                 3944 Services                   0      1,724 K
vmnat.exe                     3984 Services                   0      2,820 K

3. メモリの使用量が○○以上のプロセスを表示する

tasklist /fi “memusage gt xxxx” でメモリの使用量が○○以上のプロセスを表示できます。ちなみに “gt” は “grater than” の略です。例えばメモリ使用量が100 MB (102,400 KB) 以上のプロセスを抜き出す場合は下記のようにします。

CMD> tasklist /fi "memusage gt 102400"

イメージ名                     PID セッション名     セッション# メモリ使用量
========================= ======== ================ =========== ============
Memory Compression            2488 Services                   0    508,024 K
MsMpEng.exe                   4060 Services                   0    169,732 K
explorer.exe                  8536 Console                    1    140,320 K
SearchHost.exe                1868 Console                    1    199,888 K
chrome.exe                   13332 Console                    1    366,520 K
chrome.exe                   14436 Console                    1    333,616 K
chrome.exe                   17116 Console                    1    114,300 K
CalculatorApp.exe             8788 Console                    1    102,520 K
EXCEL.EXE                    19780 Console                    1    112,396 K
chrome.exe                    2372 Console                    1    217,908 K
chrome.exe                   19056 Console                    1    115,084 K
chrome.exe                   20708 Console                    1    270,636 K
chrome.exe                    1072 Console                    1    128,116 K
chrome.exe                   23064 Console                    1    199,736 K
chrome.exe                   10716 Console                    1    209,300 K
powershell.exe               16904 Console                    1    121,448 K

4. メモリの使用量順にソートする

メモリ使用容量でソートするオプションはありません。 tasklist /fo csv でCSV形式で出力し、エクセルに貼り付けて、ソートするのが確実です。

以上。

コメント