Занадто багато пам'яті звикає


13

Я певний час відчував це, дивлячись на те, що менеджер із завдань подумки балує, скільки фізичної пам'яті має бути використано, і помічаючи велику невідповідність. Я нарешті обійшов його вимірювання. Взявши результати списку завдань і додавши, дав близько 3,87 ГБ. Менеджер завдань сказав мені, що я використовую 4,6 ГБ пам'яті. Це здається великою розбіжністю. Куди воно пішло?

EDIT: Отже, зрозуміло, що він не збирається попередньо вибирати. Також було висловлено припущення, що його частина ОС, але не частина жодного із системних процесів. Якщо це правда, будь ласка, знайдіть спосіб отримати ОС, щоб сказати мені, скільки пам'яті використовується. Оскільки я хочу з’ясувати, куди поділася пам’ять, просити мене подивитися на різницю нічого не робить для мене.

EDIT 2: Це не таке:

  1. Ядро
  2. Кеш
  3. Апаратне забезпечення пам'яті

Зображення зайнятих ресурсів. Не зовсім впевнений, що це буде робити, але ... введіть тут опис зображення


Яку ОС ви використовуєте? Ви отримаєте кращі відповіді з додатковою інформацією :)
Cam Jackson

Вибачте дивіться новий тег :)
soandos

@soandos: Ви намагалися вимкнути супервибір та перезавантаження? Це має значення?
користувач541686

Так, я це зробив, і ні, цього не сталося, хоча було б також непогано знати, скільки займає попередній вибір пам'яті.
soandos

2
Prefetch НЕ використовує пам'ять, він кешує найбільш використовуваний байт-код із складених програм. Не відключайте його, або продуктивність вашої системи різко впаде.
Прорив

Відповіді:


5

Я пропоную завантажити пакет Sysinternals від Microsoft . Він включає кілька утиліт, які дадуть вам більше інформації, ніж робить диспетчер завдань. Погляньте на утиліти Process Explorer, RAMMap, VMMap та Process Monitor. Щоб отримати від них максимум інформації, можливо, вам доведеться зробити певну конфігурацію, щоб змінити інформацію, яка відображається.

Крім того, оскільки вас цікавить пам'ять Windows, ось низка публікацій блогу від Марка Русиновича , одного з розробників / засновника Sysinternals. Це допоможе зрозуміти інформацію, яку надають комунальні послуги.


RAMMap, схоже, говорить мені, що менеджер завдань завищує загальне використання оперативної пам'яті приблизно на 100 МБ, але згідно зі списком пам'яті, яку я можу витягнути за допомогою списку завдань, RAMMap також завищує приблизно на 200 МБ (список завдань +200 = RAMMap, RAMMap + 100 = taskmanger)
soandos

1
Я не впевнений у тому, що ви бачите, і я не маю на машині Windows, щоб заглянути в це. Однак якщо ви все-таки хочете копати глибше, запитайте на форумах Sysinternals. Там є дуже розумні люди, які дуже "входять" у внутрішні системи Windows. Вони ознайомляться з точнішими пунктами управління пам'яттю Windows.
Joe Internet

Для подальшої довідки, ось TechEd 2011 Марка Русиновича розповідає про управління пам’яттю Windows: channel9.msdn.com/Events/TechEd/NorthAmerica/…
Joe Internet

Ця «відповідь», хоч і прийнята, не дає відповіді на питання! Це просто пропонує інструменти та читання для розслідування.
Джеймі Ханрахан

8

Windows 7 використовує "невикористану" пам'ять для попереднього кешування речей, щоб швидше працювати. Якщо вам потрібна ця пам'ять, вона звільниться.

Його особливість, а не помилка;)

Від технет

Якщо ви деякий час використовували систему Windows Vista, на сторінці продуктивності диспетчера завдань ви побачите низьке число лічильника вільної фізичної пам'яті. Це тому, що SuperFetch і звичайне кешування Windows використовують всю наявну фізичну пам'ять для кешування даних диска. Наприклад, під час першого завантаження, якщо ви негайно запускаєте диспетчер завдань, ви помітите, що значення вільної пам'яті зменшується, коли число кешованої пам'яті збільшується. Або якщо ви запустили програму, що голодує на пам'ять, а потім вийдете з неї (будь-який із безкоштовних «оптимізаторів оперативної пам’яті», які виділяють велику кількість пам’яті та потім вивільнять пам’ять, спрацює), або просто скопіюйте дуже великий файл, вільний номер буде піднімається, і графік використання фізичної пам’яті знизиться, коли система відновлюватиме розміщену пам’ять. Однак з часом SuperFetch переповнює кеш пам’яттю даних, які були витіснені з пам'яті,


1
1) так чому це не вказано в пам'яті для цього процесу? 2) як я знаю, що тут справа?
soandos

Я вважаю, суперфетч знаходиться під svchost. МОЖЕ бути зараховано до пам'яті ядра. Ви можете спробувати увімкнути і вимкнути супервибір, щоб перевірити.
Подорожник Geek

Це нічого не зробило.
soandos

Пам'ять, яку використовує Superfetch, знаходиться у списку сторінок очікування і вважається частиною "Доступно". Це не зараховується як "використовується", тому що його можна змінити (витягнути зі списку очікування та ввести в процес) так само, як і все в списку очікування, і все у списку "Безкоштовно" та "Нуль".
Джеймі Ханрахан

5

Цифри, які ви бачите, абсолютно неточні і їх слід сприймати лише як показання.

Операційна система є надзвичайно складною сутністю і проста програма, подібна до диспетчера завдань, ніколи не може скласти загальне використання, багато її частин просто недоступні в режимі користувача, під яким вона працює. Деякі елементи, недоступні йому або просто неможливо віднести до будь-якого "завдання", - це таблиці сегментації апаратних засобів, розподіли спільної пам'яті, виділена ядрами пам'ять, розміщення сторінок у пам'яті, пам'ять пристрою та багато іншого.

Більше пояснень ви знайдете у розділі Як інтерпретувати вкладку «Продуктивність» менеджера завдань? , але я вирішу цитувати цю частину:

Що ви очікуєте від програми, яка називає себе "менеджером завдань"? У ядрі операційної системи нічого не називається "завдання" - ОС має "процеси" та "потоки". У DOS були "завдання". Апаратне забезпечення Intel має "завдання" структури, але ОС не використовує їх, тому що це швидше, щоб зробити це самостійно.

Диспетчер завдань - це дуже стара програма Windows, має проблеми навіть з розподілом функцій сервісам, і цифри, які вона показує, слід приймати з великою щіпкою солі. На великих ділянках пам’яті, мабуть, не вистачає того, що він не може встигнути підрахувати або приписувати будь-яку «задачу».


Отже, яку програму я повинен використовувати, щоб розібратися? PS Task mangager має перелічену пам’ять ядра.
soandos

1
Немає жодної програми, яка б надала ВСІЙ інформації. Диспетчер завдань дасть деяку інформацію та наближення, Диспетчер пристроїв може розповісти про пам'ять пристрою, WinObj про об'єкти пам'яті. Найкращим джерелом є Монітор ресурсів, викликаний на вкладці Ефективність диспетчера завдань (та інших місць), що фактично є сучасною заміною диспетчера завдань.
harrymc

Менеджер ресурсів дає номер у межах 15 менеджера завдань.
soandos

Вони виглядають як єдині номери, які можна отримати з інтерфейсу Windows. Вони не точні, але набагато кращі, ніж нічого. Їх можна використовувати для усунення несправностей (що я багато роблю), але не сподівайтеся, що вони все включають.
harrymc

Думка про те, що диспетчер завдань - це "дуже стара програма Windows", нерозумно. Він оновлюється кожною версією ОС так само, як і майже все інше. Що стосується "єдиних номерів, які ви можете отримати", ви не використовували Monitor Monitor?
Джеймі Ханрахан

3

Як ви могли помітити, диспетчер завдань може дати вам спрощений огляд того, як більшість програм впливає на вашу систему, але залишає бажати кращого. Якщо ви дійсно хочете викопати кеші в оперативній пам’яті тощо, вам потрібно зайти в Монітор продуктивності. Вам знадобиться певна робота, щоб створити свій набір системних лічильників для контролю вашої системи.

Ви можете потрапити туди, запустивши compmgmt.msc або вікном пошукайте "управління комп'ютером", а з лівого боку ви побачите дерево продуктивності, яке ви можете розширити і вкопати.

Ось посилання на деякі доступні інструменти: http://technet.microsoft.com/en-us/library/cc749249.aspx


Хоча я бачу, що це дуже класний інструмент, який може зробити багато речей (про що свідчить той факт, що є багато лічильників під пам’яттю, я не знаю, що я шукаю. Будь-які ідеї?
soandos

Крім того, опція лічильника додання має тенденцію прилипати до мого екрану, і мені доведеться вручну змінювати роздільну здатність вперед і назад, щоб виправити її (оновлення не працює). Я не знаю вашої вини.
soandos

3

Пам'ять, ймовірно, використовується для ядра. Використовуючи Process Explorer, ми можемо побачити набагато більш детальне розбиття системної пам'яті:

Інформація про пам'ять ядра

Тут я виділив об'єм пам'яті, яку використовує ядро, яке є Paged WS + Nonpaged, або приблизно ~ 300 Мб пам'яті. Це на щойно запущеній системі з просто веб-браузером та кількома іншими програмами, які відкриті, хоча під великим навантаженням моя домашня система легко зламає 500 МБ або навіть 700 МБ пам'яті ядра.


Я на це дивився, і це не дає достатньо. Дякую, хоча.
soandos

Ви питаєте про різницю між номерами комітів та фізичної пам'яті?
Darth Android

Ні, я запитую, чому коли я запускаю різні інструменти, які повинні отримати мені однакові номери, я отримую різні цифри.
soandos

2

@soandos, ти врахував, скільки пам'яті тягне відео? Цілком можливо, що відео тягне .73 ГБ оперативної пам’яті. У вас є гідна відеокарта на цій машині? Якщо ні, то вона буде використовувати оперативну пам’ять так (наскільки я знаю). Якщо я помиляюся, хтось, будь ласка, задзвонив сюди, але я вважаю, що це може бути наслідком того, що відео витягне з оперативної пам'яті.


У мене є Nvidia GTS 360M. Це не чудова відеокарта, але вона має ГБ пам'яті.
soandos

Який тип монітора ви використовуєте з якою роздільною здатністю? Також ви займаєтесь відеоінтенсивними завданнями, як-от грати в ігри в 1080p? А який тип оперативної пам’яті використовує відеокарта (наприклад, DDR1, DDR2, DDR3, DDR5)? Я б сам поглянув на це, але я спробував це з чиєюсь моделлю відеокарти і помітив, що вони зробили це з кількома різними типами оперативної пам'яті ...
Девід

Стандартно з комп’ютером, 1920x1080, поняття не маю. Чи є спосіб просто виміряти це?
soandos

Зазвичай це буде сказано на упаковці, я не впевнений. Якщо ви знаєте цю точну модель картки, ви можете дізнатися в Інтернеті. Якщо це не дуже потужна відеокарта (за допомогою DDR2, DDR1), а ви використовуєте 1920x1080 з великим монітором (наприклад, я використовую телевізор Samsung 46 "TOC як мій монітор вдома), ви можете записати багато пам’яті лише на відео… Я не впевнений, чи є спосіб побачити, скільки оперативної пам’яті споживає ваше відео. Я зараз зараз пророблю деякі дослідження. Я прокоментую, знайшов я чи ні Я хочу допомогти вам якнайбільше
Девід,

Я зараз перевіряю цю програму, щоб побачити, чи може вона мати те, що ми шукаємо. Це SiSoftware Sandra Lite 2011.2.17.47. В описі зазначено, що він робить те, що ми шукаємо, наприклад, скільки оперативної пам’яті споживає відео.
Девід

1

Я вважаю, що ви бачите не лише в тому, що інструменти не в змозі побачити використану пам'ять, а через різні форми вимірювання. Я не можу це пояснити дуже добре, але, на щастя, мені цього не потрібно, Марк Русинович із слави Sysinternals написав дуже гарну серію публікацій щодо продуктивності процесів у Windows. Частини про фізичну пам'ять та віртуальну пам'ять повинні пояснювати, що ви бачите.


Ні, це не питання. Мене більше хвилює загальна сума, ніж те, де вона зберігається (ОЗУ або HD).
soandos

0

Я думаю, що я це вирішив!

Я щойно натрапив на пораду про RAMMap, і виявилося, що це µTorrent!

Не utorrent.exeсама, але файли, якими користується µTorrent - принаймні в моєму випадку: один з файлів використовував понад 600 МБ, а інший понад 200 Мб тощо.


-1

Деяка пам’ять використовується як кеш. Як тільки вам потрібна ця пам'ять, вона автоматично звільняється. Отже, турбуватися не потрібно.


-1 Це не кеш, як це 1) рахується окремо, 2) легко враховується.
soandos
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.