Як знайти джерело витоку пам'яті в Windows 7?


10

У мене є машина для ОС Windows 7, яка залишається низькою. Я бачу, як вільна оперативна пам’ять знижується протягом декількох годин, поки машина не реагує. Я перевірив список процесів, і жоден з них не займає стільки оперативної пам’яті.

Я також перевірив кількість ручок за процес та різні інші показники, але досі не можу знайти, чому в машині не вистачає оперативної пам’яті.

Чи є хороший спосіб перевірити, як використовується пам'ять у 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повідомляється про близько 400 Мб вільної пам'яті з 2 Гб.

RamMap:

введіть тут опис зображення

Менеджер завдань:

введіть тут опис зображення


1
Чи можете ви перезапустити комп’ютер і опублікувати скріншот процесів у своєму диспетчері завдань? І обов'язково відображайте процеси від усіх користувачів, будь ласка. Якщо після перезавантаження у вас більше 50-60, ви, безсумнівно, можете зробити щось, але якщо нічого не виглядає рибним, то все може вийти складніше ..
MonkeyZeus

1
У вас не вистачає віртуальної або фізичної пам'яті. Рішення та причина різні. Попередження про низьку віртуальну пам’ять - це проблема конфігурації, оскільки фізична пам’ять обмежена, означає, що вам доведеться виконувати багато процесів.
Рамхаунд

1
Чи є у вас докази того, що причиною є витік пам'яті? Здається, у вас є хороші докази того, що це не витік пам'яті. (Хоча, мабуть, це може бути розбитий водій.)
Девід Шварц

Дякуємо за відгук. Я додав ще трохи інформації до публікації, зокрема список завдань. Це вільна фізична пам'ять, яка з часом продовжує знижуватися. Чи можна перевірити, як він використовується?
Лоран

1
розмістити скріншоти RAMMAp: technet.microsoft.com/en-us/sysinternals/ff700229.aspx
magicandre1981

Відповіді:


8

Високе значення пам'яті відбувається завдяки високому використанню таблиці сторінок . Щоб побачити, які процеси використовують його, встановіть інструментарій Windows Performance Toolkit , відкрийте командний рядок як адміністратор та запустіть цю команду:

xperf -on ReferenceSet -BufferSize 1024 -MaxFile 512 -FileMode Circular  && timeout 5 && xperf -d MemUsage.etl

Відкрийте за MemUsage.etlдопомогою аналізатора продуктивності Windows (WPA.exe), перетягніть графік "ResidentSet" зі лівого списку графіків на панель аналізу:

введіть тут опис зображення

Тепер перемістіть стовпець «Категорія сторінки» вліво та розгорніть запис «Таблиця сторінок»:

введіть тут опис зображення

Тут ви бачите процеси, які мають високе використання сторінок. Праворуч (після синьої лінії) ви бачите використання пам'яті сторінок таблиці в МБ для кожного процесу.


у windows8.1 я не бачу "резидент" як доступний варіант-графік. як я можу це отримати? інший xperf-прапор?
акіра

Я відповідаю на власний коментар: оновлення xperf.
акіра

Для мене це не працює в Windows 7 - перший виклик xperf даєxperf: error: NT Kernel Logger: Invalid flags. (0x3ec).
benshepherd

@benshepherd для мене це працює. Переконайтесь, що ви використовуєте останню версію WPT з 8.1 SDK: dropbox.com/s/e5ol59a6n9g3ctb/Win7_xperf.png
magicandre1981

1
Я врешті-решт виявив проблему, це Lenovo "RapidBoot Shield", і видалення її вирішило мою проблему: superuser.com/a/850346/79763
sparrowt

0

Єдині "дивні" речі, які я бачу тут, це:

  • у вас є процес, scan.exeякий називається прямо зараз 98% процесора
  • у вас є процес, fssm32.exeякий називається, який має 9 мільйонів помилок сторінки. fssm32.exeвиглядає як програма із захищеного сканера вірусів f.
  • у вас також є процес, SAV32CLI.EXEякий називається, який відтягує ще 130 Мб + пам'яті. Схоже, ви відчуваєте себе краще захищеними, щоб запустити 2 вірусні сканери: f-secure і sophos одночасно.

скріншот rammap для мене виглядає нормально: у вас є пул ~ 400mb кешованих файлів, 85mb їх в активному використанні, 300mb + в режимі очікування (тобто вони звільняються, як тільки вам потрібно більше оперативної пам’яті). дивлячись на кількість процесів sshd.exe та bash.exe, це також виглядає законно.

найкращий спосіб дізнатися, як працює система управління пам’яттю Windows, - це розмова тут: http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/WCL405 .. Ви вже використовуєте деякі інструменти, розроблені спікером .


1
мої контакти Microsoft (Microsoft Premier Field Engineers) також сказали мені, що декілька 100МБ таблиці сторінок не є нормальними для Windows.
magicandre1981
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.