RAMが少なくなり続けるWindows 7マシンを持っています。無料のRAMがマシンが応答しなくなるまで数時間かけてダウンしているのがわかります。プロセスリストをチェックしたところ、どれもそれほど多くのRAMを使用していません。
プロセスごとのハンドル数やその他のさまざまなインジケーターも確認しましたが、マシンでRAMが不足する理由を見つけることができません。
Windowsでメモリがどのように使用されているかを確認する良い方法はありますか?
編集
マシンが応答しなくなる数分前のtasklist
の結果は次のとおりです。
Image Name PID Session Name Session# Mem Usage
========================= ======== ================ =========== ============
System Idle Process 0 Services 0 24 K
System 4 Services 0 300 K
smss.exe 196 Services 0 1,024 K
csrss.exe 272 Services 0 4,336 K
wininit.exe 320 Services 0 4,184 K
csrss.exe 332 Console 1 3,516 K
winlogon.exe 372 Console 1 6,316 K
services.exe 416 Services 0 8,112 K
lsass.exe 432 Services 0 10,088 K
lsm.exe 440 Services 0 3,664 K
svchost.exe 548 Services 0 8,152 K
svchost.exe 620 Services 0 6,564 K
svchost.exe 660 Services 0 15,764 K
LogonUI.exe 724 Console 1 18,428 K
svchost.exe 768 Services 0 7,992 K
svchost.exe 828 Services 0 9,724 K
svchost.exe 852 Services 0 28,092 K
svchost.exe 176 Services 0 13,096 K
spoolsv.exe 824 Services 0 10,608 K
svchost.exe 952 Services 0 11,632 K
svchost.exe 1076 Services 0 8,524 K
fshoster32.exe 1120 Services 0 9,148 K
fsorsp.exe 1200 Services 0 8,036 K
fsgk32.exe 1324 Services 0 3,084 K
cygrunsrv.exe 1552 Services 0 5,852 K
conhost.exe 1864 Services 0 2,996 K
sshd.exe 1896 Services 0 7,804 K
FSMA32.EXE 2024 Services 0 1,628 K
svchost.exe 1320 Services 0 5,092 K
fssm32.exe 1704 Services 0 2,196 K
FSHDLL64.EXE 2120 Services 0 644 K
SearchIndexer.exe 3260 Services 0 13,596 K
sshd.exe 138920 Services 0 8,696 K
sshd.exe 138448 Services 0 8,696 K
sshd.exe 138660 Services 0 8,696 K
bash.exe 137924 Services 0 5,380 K
bash.exe 137820 Services 0 3,832 K
SAV32CLI.EXE 136344 Services 0 133,868 K
WmiPrvSE.exe 139444 Services 0 7,168 K
sshd.exe 139672 Services 0 8,692 K
sshd.exe 139876 Services 0 8,684 K
bash.exe 139992 Services 0 5,432 K
bash.exe 140040 Services 0 3,996 K
bash.exe 140200 Services 0 5,400 K
bash.exe 139424 Services 0 4,048 K
typeperf.exe 139300 Services 0 5,372 K
sleep.exe 138268 Services 0 2,272 K
sshd.exe 139612 Services 0 7,168 K
sshd.exe 137720 Services 0 5,700 K
bash.exe 139524 Services 0 5,304 K
bash.exe 138952 Services 0 3,756 K
tasklist.exe 137580 Services 0 5,164 K
bash.exe 139460 Services 0 5,452 K
bash.exe 139796 Services 0 104 K
その時点で、 wmic OS get FreePhysicalMemory /Value
は、2GBのうち約400MBの空きメモリを報告します。
RamMap:
タスクマネージャ:
高いメモリ使用量は、高い ページテーブル の使用に由来します。どのプロセスがそれを使用しているかを確認するには、 install the Windows Performance Toolkit で、コマンドプロンプトadminを開き、次のコマンドを実行します。
xperf -on ReferenceSet -BufferSize 1024 -MaxFile 512 -FileMode Circular && timeout 5 && xperf -d MemUsage.etl
MemUsage.etl
Windowsパフォーマンスアナライザー(WPA.exe)を使用して、グラフ「ResidentSet」を左側のグラフリストから分析ペインにドラッグアンドドロップします。
次に、「ページカテゴリ」列を左側に移動し、「ページテーブル」エントリを展開します。
ここでは、ページテーブルの使用率が高いプロセスを確認できます。右側のサイト(青い線の後)に、各プロセスのページテーブルのメモリ使用量(MB単位)が表示されます。
ここで私が見ることができる唯一の「奇妙な」ものはこれらです:
scan.exe
というプロセスがあり、現在98%のCPUを消費していますfssm32.exe
と呼ばれるプロセスがあり、900万のページフォールトがあります。 fssm32.exe
は、f-secureウイルススキャナーのプログラムのように見えます。SAV32CLI.EXE
というプロセスがあり、130MB以上のメモリを消費します。 2つのウイルススキャナー(f-secureとsophos)を同時に実行すると、保護されているように感じられます。rammap-screenshotは私にとっては問題ないように見えます:〜400mbキャッシュファイルのプールがあり、そのうち85mbがアクティブに使用され、300mb +がスタンバイモードになっています(つまり、より多くのRAMが必要になるとすぐに解放されます)。 sshd.exeおよびbash.exeプロセスの量を確認すると、これも合法に見えます。
windowsがメモリを管理する方法の内部の仕組みを学ぶ最善の方法は、ここでの講演です http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/WCL405 ..既に使用していますスピーカーが開発したツールの一部。