Я использую Process Explorer для наблюдения за своим сервером Windows, пока он восстанавливает некоторые данные. Это в первую очередь процесс, интенсивно использующий процессор, но я хочу убедиться, что он не подкачивается. Как узнать, использует ли он Process Explorer? Мое первоначальное предположение находится в окне информации о системе, это дельта записи файла подкачки. Да? Нет? Я идиот?
* Скриншот не с сервера ... просто пример.
альтернативный текст http://www.malwareinfo.org/bootcamp/img/ProcessExplorer2.jpg
«Ввод страниц / сек - это счетчик, за которым нужно следить, но не стоит беспокоиться об его« подкачке », поскольку Windows не использует файл подкачки, как * nixes.
Для начала вам нужно понять, что страницы окна не выходят. Я процитирую соответствующую часть Сообщение в блоге Эрика Липперса (слегка отредактировано), поскольку я сам не могу сказать лучше:
«ОЗУ можно рассматривать просто как оптимизацию производительности. Доступ к данным в ОЗУ, где информация хранится в электрических полях, которые распространяются со скоростью, близкой к скорости света, намного быстрее, чем доступ к данным на диске, где информация хранится в огромных и тяжелых молекулы черных металлов
Операционная система отслеживает, к каким страницам хранилища и к каким процессам обращаются чаще всего, и делает их копии в ОЗУ, чтобы увеличить скорость. Когда процесс обращается к указателю, соответствующему странице, которая в настоящее время не кэшируется в ОЗУ, операционная система выдает «сбой страницы», выходит на диск и копирует страницу с диска в ОЗУ, делая разумное предположение. что скоро к нему снова будет доступ.
Операционная система также очень умна при совместном использовании ресурсов только для чтения. Если два процесса загружают одну и ту же страницу кода из одной и той же библиотеки DLL, то операционная система может совместно использовать кэш ОЗУ между двумя процессами. Поскольку код, по-видимому, не будет изменен ни одним из процессов, вполне разумно сохранить дублирующую страницу ОЗУ, поделившись ею.
Но даже при умном совместном использовании этой системе кэширования в конечном итоге не хватит оперативной памяти. Когда это происходит, операционная система делает предположение о том, какие страницы с меньшей вероятностью будут доступны в ближайшее время, записывает их на диск, если они изменились, и освобождает эту оперативную память для чтения из того, что с большей вероятностью будет доступно снова. скоро.
Когда операционная система угадает неправильно, или, что более вероятно, когда оперативной памяти просто не хватает для хранения всех часто используемых страниц во всех запущенных процессах, машина начинает «перебивать». Операционная система тратит все свое время на запись и чтение дорогостоящего дискового хранилища, диск работает постоянно, а вы не выполняете никакой работы.
Это также означает, что «нехватка ОЗУ» редко приводит к ошибке «нехватки памяти». Вместо ошибки это приводит к снижению производительности, потому что внезапно становится актуальной полная стоимость того факта, что хранилище фактически находится на диске.
С другой стороны, общий объем виртуальной памяти, потребляемой вашей программой, не имеет большого значения для ее производительности. Имеет значение не общий объем потребляемой виртуальной памяти, а, скорее, (1) какая часть этой памяти не используется совместно с другими процессами, (2) насколько велик «рабочий набор» часто используемых страниц и ( 3) превышают ли рабочие наборы всех активных процессов доступную оперативную память.
К настоящему времени должно быть ясно, почему ошибки «нехватки памяти» обычно не имеют ничего общего с тем, сколько у вас физической памяти или даже с тем, сколько памяти доступно. Почти всегда речь идет об адресном пространстве, которое в 32-битной Windows относительно невелико и легко фрагментируется. "
Несколько дополнительных моментов:
для полного представления о том, как управление памятью работает в Windows, см.
Диспетчер виртуальной памяти в Windows NT
Если вы считаете, что у вас проблемы с памятью, я сначала предлагаю посмотреть эту презентацию на устранение неполадок памяти Windows
Вот отличное объяснение того, почему иногда вы получаете "нехватку памяти", когда это не так, из-за фрагментации памяти:
Смотрите также Расширяя границы Windows: физическая память
Подробнее о виртуальной памяти, фрагментации и утечках памяти и WOW64
ОЗУ, виртуальная память, файл подкачки и все такое (поддержка Microsoft)
Обновить:
Windows 10 делает что-то немного другое с памятью, и со временем вы увидите процесс под названием «Система и сжатая память». Windows 10 добавляет «хранилище сжатия» в список разметки. Эта оперативная память является памятью ПОЛЬЗОВАТЕЛЯ, которая принадлежит системе (обычно в системе была только память ядра). Эта память сжимается на месте для среднего сокращения примерно до 30%. Это позволяет хранить в памяти больше страниц (для тех из вас, кто занимается математикой, что на 70% больше места). Обратите внимание, что если в памяти все еще есть давление, тогда страницы из хранилища сжатия (пространство системного процесса пользовательского режима) могут быть помещены в измененный list (сжатый), который затем можно записать в физический файл подкачки. Система увидит, что они взяты из системного пространства пользовательского режима и сжаты, и не попытается вернуть их в магазин. Таким образом, в системах Windows 10 это может выглядеть так, как будто система вдыхает барана, но на самом деле это просто пытается быть более эффективным при использовании барана. Пользователи Mac используют аналогичную функцию с 2013 года, а в более новых версиях ядра Linux используется версия сжатия памяти. Этот метод экономии памяти не только лучше, но и уже распространен среди других операционных систем.
Да, дельты пейджинга дадут вам живую индикацию того, сколько сервер пейджинг (или "свопинг"), но только в этот момент. Чтобы посмотреть на это более внимательно и увидеть историческую точку зрения, я бы предложил использовать Монитор производительности (perfmon.exe) для составления графика или записи этих дельт (и любых других интересующих счетчиков производительности, которые могут помочь сопоставить определенные события или действия с пиками активности подкачки).
Монитор производительности (perfmon) - ваш друг. Вы ищете аппаратные сбои страниц (то есть сбои страниц, когда страница памяти, необходимая для выполнения запроса, должна быть считана с диска), поэтому мониторинг как аппаратных, так и программных ошибок страниц неоптимален.
Наблюдайте за счетчиком «Ввод страниц / сек» в объекте «Память» с помощью perfmon, чтобы понять, сколько жестких ошибок страниц происходит.
Хорошее эмпирическое правило состоит в том, что если ваш уровень фиксации выше, чем ваша физическая память, вы определенно просматриваете что-то, но если ваше приложение использует один фиксированный буфер данных, который всегда используется, он, как правило, не выгружается вообще. При запуске может быть некоторая задержка, в то время как другая память выгружается, чтобы освободить для этого место.