Как мне узнать, что мой сервер Windows подкачки?

29

Я использую Process Explorer для наблюдения за моим сервером Windows, пока он восстанавливает некоторые данные. Это в первую очередь процесс, интенсивно использующий процессор, но я хочу убедиться, что он не обменивается. Как я могу узнать, использует ли он Process Explorer? Мое первоначальное предположение в окне «Информация о системе», это дельта записи файла подкачки. Да? Нет? Я идиот?

* Скриншот не с сервера ... просто пример.

альтернативный текст http://www.malwareinfo.org/bootcamp/img/ProcessExplorer2.jpg

churnd
источник

Ответы:

30

«Ввод страниц / сек» - это счетчик, который нужно наблюдать, но вам не стоит беспокоиться о его «подкачке», поскольку окна не используют файл подкачки, как * nixes.

Во-первых, вы должны понимать, что окна страниц не выходят. Я собираюсь процитировать соответствующую часть поста в блоге Эрика Липперта (слегка отредактированного), так как сам не могу сказать это лучше:

«ОЗУ можно рассматривать как просто оптимизацию производительности. Доступ к данным в ОЗУ, где информация хранится в электрических полях, распространяющихся со скоростью, близкой к скорости света, намного быстрее, чем доступ к данным на диске, где информация хранится в огромном, тяжелом молекулы черного металла

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

Операционная система также очень умна для совместного использования ресурсов только для чтения. Если два процесса загружают одну и ту же страницу кода из одной и той же библиотеки DLL, операционная система может совместно использовать кэш-память ОЗУ между двумя процессами. Поскольку код, по-видимому, не будет изменен ни одним из процессов, вполне разумно сохранить дублирующую страницу ОЗУ, разделяя ее.

Но даже при умном совместном использовании в конечном итоге этой системе кэширования не хватит оперативной памяти. Когда это происходит, операционная система делает предположение о том, какие страницы с меньшей вероятностью будут снова доступны в ближайшее время, записывает их на диск, если они изменились, и освобождает эту ОЗУ для чтения в том месте, к которому с большей вероятностью будет выполнен доступ снова. скоро.

Когда операционная система угадывает неправильно или, что более вероятно, когда ОЗУ просто не хватает для хранения всех часто используемых страниц во всех запущенных процессах, тогда машина начинает «молотить». Операционная система тратит все свое время на запись и чтение дорогого дискового хранилища, диск работает постоянно, и вы не выполняете никакой работы.

Это также означает, что «нехватка ОЗУ» редко приводит к ошибке «недостаточно памяти». Вместо ошибки это приводит к плохой производительности, потому что полная стоимость того факта, что хранилище фактически находится на диске, внезапно становится актуальной.

Другой способ взглянуть на это состоит в том, что общий объем виртуальной памяти, которую использует ваша программа, на самом деле не имеет большого значения для ее производительности. Важно не общее количество потребляемой виртуальной памяти, а, скорее, (1), сколько этой памяти не используется другими процессами, (2) насколько велик «рабочий набор» часто используемых страниц, и ( 3) больше ли рабочие наборы всех активных процессов, чем доступная RAM.

К настоящему времени должно быть понятно, почему ошибки «нехватки памяти» обычно не имеют никакого отношения к тому, сколько у вас физической памяти, или как много свободного места доступно. Это почти всегда адресное пространство, которое в 32-битной Windows относительно мало и легко фрагментируется. "

Несколько дополнительных моментов:

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

для полной картины того, как управление памятью работает в окнах, см.

Диспетчер виртуальной памяти в Windows NT

если вы думаете, что у вас есть проблемы с памятью, я бы сначала предложил посмотреть эту презентацию по устранению неполадок памяти Windows

Вот отличное объяснение того, почему иногда вы получаете «нехватку памяти», когда вы не из-за фрагментации памяти:

Смотрите также Расширение границ Windows: физическая память

Подробнее о виртуальной памяти, фрагментации памяти и утечках, а также WOW64

ОЗУ, виртуальная память, файл подкачки и все такое (поддержка Microsoft)

Обновить:

Windows 10 делает что-то немного другое с памятью, и со временем вы увидите процесс под названием «Система и сжатая память». Windows 10 добавляет «хранилище сжатия» в список подкачки. Этот оперативный памяти является памятью USER, которая принадлежит системе (как правило, система имела только память ядра). Эта память сжимается на месте для среднего сокращения примерно до 30%. Это позволяет хранить больше страниц в памяти (для тех, кто выполняет математику, это занимает на 70% больше места). Обратите внимание, что если в памяти все еще есть давление, то страницы из хранилища сжатия (пользовательский режим, пространство процесса системы) могут быть помещены в измененный список (сжатый), который затем может быть записан в физический файл подкачки. Система увидит, что они из пространства режима пользователя системы и сжаты, и не будет пытаться вернуть их обратно в хранилище. Так что в системах Windows 10 может показаться, что система вдыхает оперативную память, но на самом деле она просто пытается более эффективно использовать оперативную память. Пользователи Mac используют подобную функцию с 2013 года, а в более новых версиях ядра Linux используется версия сжатия памяти. Этот метод сохранения памяти не только лучше, но уже распространен среди других операционных систем.

Джим Б
источник
6

Да, дельтаги пейджинга дадут вам живую информацию о том, сколько сервер выполняет пейджинг (или «подкачку»), но только в этот момент. Для более подробного просмотра и просмотра хронологии я бы предложил использовать системный монитор ( perfmon.exe ) для составления диаграммы или записи этих дельт (и любых других представляющих интерес счетчиков производительности, которые могут помочь соотнести определенные события или действия с всплесками в пейджинговая деятельность).

Джессика Маккиннон
источник
5

Performance Monitor (perfmon) ваш друг здесь. Вы ищете жесткие сбои страниц (то есть сбои страниц, когда страница памяти, необходимая для выполнения запроса, должна быть прочитана с диска), поэтому мониторинг как жестких, так и программных сбоев страниц является неоптимальным.

Наблюдайте за счетчиком «Ввод страниц / сек» в объекте «Память», используя perfmon, чтобы понять, сколько происходит серьезных сбоев страниц.

Эван Андерсон
источник
0

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

Максимус Минимус
источник
3
МХ: Я не уверен, что я согласен с вашим эмпирическим правилом. Если заряд фиксации выше, чем физическая память, это просто означает, что что-то было выгружено в какой-то момент, но система не обязательно все еще что-то выдает. Что-то будет выгружено только тогда, когда произойдет сбой страницы. В противном случае я согласен , что использование одного буфера фиксированного данных будет лучше, но я думаю , что мы , вероятно , движется в область stackoverflow.com
Джессика Маккиннон
Мое плохое, я должен был сказать, что «что-то было заменено в прошлом, и будущие запросы памяти также потребуют замены».
Максимус Минимус
Это не обязательно так, приложение может блокировать только страницы в памяти, которые имеют эту привилегию ОС.
Джим Б.