Як дізнатися, чи міняється мій сервер Windows?


29

Я використовую Process Explorer для моніторингу сервера Windows під час реконструкції деяких даних. Це насамперед інтенсивний процес процесор, але я хочу переконатися, що він не змінюється. Як я можу дізнатися, чи використовується він у Провіднику процесів? Моя початкова здогадка знаходиться у вікні Інформація про систему, це Дельта запису файлів підкачки. Так? Ні? Я ідіот?

* Знімок екрана не з сервера ... лише приклад.

alt текст http://www.malwareinfo.org/bootcamp/img/ProcessExplorer2.jpg

Відповіді:


30

"Введення сторінок / сек - це лічильник для перегляду, але ви не повинні турбуватися про те, щоб" мінявся ", оскільки Windows не використовує файл сторінки, як * nixes.

Спочатку потрібно зрозуміти, що сторінки Windows не виходять. Я збираюсь процитувати непосильну частину публікації в блозі Еріка Ліпертса (злегка відредаговану), оскільки я сам не можу сказати про це краще:

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

Операційна система відслідковує, які сторінки зберігання, з яких процесів доступ до них найчастіше, і робить їх копію в оперативній пам'яті, щоб отримати швидкість. Коли процес отримує доступ до вказівника, який відповідає сторінці, яка зараз не кешована в оперативній пам'яті, операційна система робить «помилку сторінки», виходить на диск і робить копію сторінки з диска в оперативну пам’ять, роблячи обґрунтоване припущення що незабаром незабаром буде доступ до нього.

Операційна система також дуже розумна щодо обміну ресурсами лише для читання. Якщо два процеси завантажують одну і ту ж сторінку коду з однієї DLL, операційна система може спільно використовувати кеш оперативної пам'яті між двома процесами. Оскільки, імовірно, код не буде змінений жодним із процесів, цілком розумним є збереження подвійної сторінки ОЗУ, поділившись нею.

Але навіть при розумному обміні, в кінцевому підсумку ця система кешування втратить оперативну пам’ять. Коли це станеться, операційна система здогадується про те, які сторінки найменш швидше знову відкриються, записує їх на диск, якщо вони змінилися, і звільняє цю ОЗУ, щоб прочитати щось, що швидше за все знову буде доступним. скоро.

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

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

Ще один спосіб погляду на це полягає в тому, що загальна кількість віртуальної пам’яті, яку споживає ваша програма, насправді не має великого значення для її продуктивності. Важливим є не загальний об'єм споживаної віртуальної пам'яті, а, скоріше, (1) скільки цієї пам'яті не поділяється з іншими процесами, (2) наскільки великий "робочий набір" сторінок, що часто використовуються, і ( 3) чи більше робочих наборів усіх активних процесів, ніж наявна оперативна пам'ять.

На сьогоднішній день має бути зрозуміло, чому помилки "поза пам'яттю" зазвичай не мають нічого спільного з тим, скільки фізичної пам'яті у вас є, або як навіть, скільки пам’яті доступно. Майже завжди йдеться про адресний простір, який у 32-бітовій Windows порівняно невеликий і легко фрагментований. "

Кілька додаткових моментів:

  1. DLL-файли та програмні файли завжди є лише тимчасовими, і ніколи не виходять, оскільки вони вже є на диску (і зазвичай перші сторінки вивільняються, коли фізичний таран стає низьким)
  2. у вас набагато більше, ніж у вільних записів таблиці сторінок або у вас сильно фрагментована пам'ять, ніж будь-які інші проблеми з пам'яттю (крім загальної низької продуктивності, як уже згадувалося
  3. навіть якщо ви працюєте без файлу сторінки, ви все одно можете отримати помилки сторінки
  4. загалом кажучи, що дивлячись на зафіксовану пам'ять, це більше говорить про те, як процес використовує пам'ять

для повного уявлення про те, як працює управління пам'яттю у Windows

Менеджер віртуальної пам'яті в Windows NT

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

Ось чудове пояснення того, чому іноді у вас виходить «з пам’яті», коли ви не завдяки фрагментації пам’яті:

Див. Також Просування меж Windows: Фізична пам'ять

Докладніше про віртуальну пам'ять, фрагментацію пам’яті та витоки та WOW64

Оперативна пам’ять, віртуальна пам’ять, файл сторінки та все таке (підтримка microsoft)

Оновлення:

Windows 10 робить дещо інше з пам'яттю, і з часом ви побачите процес під назвою "Система та стисла пам'ять". Windows 10 додає "сховище стиснення" до списку підкачки. Цей операційний пам'ять є USER пам'яттю, яка належить системі (зазвичай система мала лише пам'ять ядра). Ця пам'ять стискається на місці для середнього зменшення приблизно до 30%. Це дозволяє зберігати більше сторінок у пам'яті (для тих, хто займається математикою, це на 70% більше місця). Зверніть увагу, що якщо в пам'яті все ще є тиск, то сторінки з сховища стиснення (режим користувача в системному просторі) можуть бути розміщені на зміненому список (стислий), який потім може бути записаний у фізичний файл сторінки. Система побачить, що вони перебувають із простору в режимі користувача системи та стиснута, і не намагатиметься повернути їх у магазин Таким чином, на системах Windows 10 може виглядати, що система вдихає таран, але насправді вона просто намагається бути ефективнішою при використанні оперативної пам'яті. Користувачі Mac використовують подібну функцію з 2013 року, а новіші версії ядра Linux використовують версію стиснення пам'яті. Цей спосіб збереження пам’яті не тільки кращий, але вже поширений серед інших операційних систем.


6

Так, дельти підкачки дають вам живу вказівку на те, скільки сервер здійснює пейджинг (або "обмінюється"), але лише в цей момент. Щоб уважніше спостерігати за цим та переглядати історичний вигляд, я б запропонував використовувати Монітор продуктивності ( perfmon.exe ) для діаграми або запису цих дельт (та будь-яких інших лічильників ефективності, які можуть допомогти співвіднести конкретні події чи дії з шипами в діяльність підкачки).


5

Монітор ефективності (perfmon) - ваш друг тут. Ви шукаєте помилки жорсткої сторінки (тобто, помилки сторінки, коли сторінка пам'яті, необхідна для виконання запиту, повинна зчитуватися з диска), тому моніторинг помилок жорстких та м'яких сторінок є неоптимальним.

Слідкуйте за лічильником "Введення сторінок / сек" в об'єкті "Пам'ять", використовуючи perfmon, щоб зрозуміти, скільки трапляється помилок на жорсткій сторінці.


0

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


3
mh: Я не впевнений, що я згоден з вашим правилом. Якщо плата за фіксацію вища, ніж фізична пам'ять, це просто означає, що в якийсь момент щось було заподіяно, але система не обов'язково все ще щось запитує. Щось стане вимкнено під тимчасовим повідомленням, коли станеться помилка сторінки. Інакше я погоджуюся, що найкраще використовувати єдиний фіксований буфер даних, але тоді я думаю, що ми, мабуть, переходимо у сферу stackoverflow.com
Джессіка МакКіннон

Мій поганий, я повинен був сказати, "щось було помінено в минулому, і майбутні запити на пам'ять також вимагатимуть заміни".
Максим Мінімус

Це не обов'язково вірно, що програма може блокувати сторінки лише в пам'яті, яка має таку привілей до ОС.
Джим Б
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.