Версия tl; dr. Объем ОЗУ, который Windows показывает как "используемый" в режиме ожидания, почти всегда практически не имеет смысла.
Сначала давайте объясним некоторые ярлыки и посмотрим, как все складывается, или нет:
Из шапки экрана монитора ресурсов ... "Доступно" - это ОЗУ, доступное для немедленного назначения для устранения ошибки страницы. "Доступно" - это сумма "Резерв" и "Бесплатно". Это связано с тем, что "резервная" память так же доступна для немедленного использования, как и "свободная".
Итак, в режиме ожидания 1211 МБ + бесплатно 4709 МБ = 5920 МБ доступно. Это работает.
"Используется" из диспетчера задач примерно "Всего" за вычетом "Доступно". Всего 8147 - 5920 доступно = 2227 МБ. Это соответствует вашим «2,2 ГБ в использовании» на дисплее диспетчера задач.
(Помните, что для перехода от МБ к ГБ нужно делить на 1024, потому что Windows тупо использует префиксы SI для обозначения степеней 1024).
"Кэшированный" счетчик диспетчера задач довольно сложен. Это сумма списка резервных страниц (который, как уже упоминалось, включает в себя как кэш SuperFetch, так и кеш страниц виртуальной памяти), а также кеш реактивных файлов ... который является частью адресного пространства ядра, доступен для просмотра страниц и также включен в счетчике "в использовании".
Поэтому, если вы пытаетесь сложить вещи, чтобы выяснить, "куда ушла вся моя оперативная память", было бы ошибкой включать "кешированный" в сумму; это даст вам слишком большую сумму, так как вы будете считать счетчик в режиме ожидания и часть "в использовании" дважды. (Иногда это дает вам больше, чем общая оперативная память!)
Между прочим, есть еще один список, список страниц "Ноль" или "Ноль", который дисплей монитора ресурсов просто включает в "Свободный"; для большинства вопросов "где моя память" различие между "свободным" и "нулевым" незначительно.
Я не понимаю, почему у меня доступно 5,7 ГБ, иногда до 4 ГБ в режиме ожидания.
Windows - это виртуальная память с операционной системой по запросу. "Страницей по требованию" означает, что страницы кода и данных, как правило, не заносятся в ОЗУ до тех пор, пока на них нет ссылок. Каждый раз, когда вы ссылаетесь на страницу, которой нет в ОЗУ, страница ОЗУ должна быть удалена из одного из "доступных" списков (обнуленных, свободных или резервных) и назначена процессу, который в ней нуждается. Затем он считается "используемым" и учитывается в процессе "рабочего набора". (Страницы 4 КБ.)
Эта последовательность является "ошибкой страницы" - "ошибкой жесткой страницы", если она означает чтение с диска (или SSD). И мы говорим, что страница была "выгружена".
(Многие сбои страниц на самом деле устраняются без перехода на диск. Это так называемые "ошибки мягкой страницы". Излишне говорить, что это намного быстрее, чем переход на диск. Часто они преобразуются в страницы, которые находятся в списке ожидания - это функция "кеш страниц виртуальной памяти", о которой я упоминал ранее. Я не буду углубляться в это здесь.)
Тем не менее, термин «подкачки по требованию» также относится к распределению физической памяти (ОЗУ). Процесс, который испытывает высокую частоту отказов страниц + много процессорного времени (то есть высокий спрос на ОЗУ), может использовать больше ОЗУ; менее загруженные процессы возвращают свои рабочие наборы обратно. Если доступной оперативной памяти достаточно (как в описываемых вами случаях), процессам обычно разрешается просто сбивать содержимое и сохранять его - потому что, почему нет, если оперативной памяти достаточно?
Но если требования к ОЗУ возрастают, а доступная ОЗУ становится недостаточной, то ранее раздутые процессы обрезаются, чтобы сделать больше ОЗУ доступным для недавно загруженных процессов.
И, конечно, вы знаете, что ни одна современная операционная система никогда не бывает полностью бездействующей? Всегда есть фоновые задачи обслуживания, и им нужна оперативная память для работы. Если ОЗУ достаточно (как на вашем компьютере), им будет позволено использовать его достаточно, не потому, что им "нужно так много", а потому, что больше ничего не требуется для этого. Но если вы затем запустите программу, интенсивно использующую ОЗУ, эти фоновые процессы, так сказать, вернутся на свои места, чтобы было больше оперативной памяти для того, над чем вы активно работаете.
Поэтому было бы ошибкой смотреть на неработающую систему Windows и говорить: «О, Windows занимает х ОЗУ только тогда, когда она простаивает!«x в значительной степени зависит от того, сколько оперативной памяти общее, сколько времени она простаивала, что вы установили, что добавляло в систему различные" бездействующие задачи ", и даже то, что она делала до простоя. Так что это будет сильно варьироваться от одной системы к другой.
Кроме того, замечание о том, что «в вашей системе используется x объема ОЗУ в режиме ожидания», не означает, что Windows сохранит столько для себя, когда вы запустите программу, интенсивно использующую ОЗУ. Это просто означает, что именно столько он использует сейчас, в нынешних условиях, под влиянием многих вещей, которые произошли в последнее время.