Первый комментарий: отображение «память ядра - Paged» (здесь почти 22 ГБ) - это виртуальный размер выгружаемого пула.
"Пулы" в Windows - это куча памяти ядра. Они используются драйверами ядра и кодом режима ядра Windows почти так же, как куча используется программами пользовательского режима, но они находятся в адресном пространстве ядра, являются общими для всех процессов и, конечно, доступны только из режима ядра. Существует несколько типов распределений пулов, но они делятся на "невыгружаемые" и "выгружаемые" области. Не выгружаемый пул всегда находится в оперативной памяти.
Выгружаемый пул должен быть действительно называется "выгружаемый" бассейн, потому что называют "выгружаемый пул" не означает , что он выгружен из памяти, или что оно обязательно будет. Это означает, что он так же подлежит удалению, как и большинство пользовательских режимов.
И, как и в случае распределения в пользовательском режиме, мы можем ожидать, что в любое время некоторое подмножество виртуального размера выгружаемого пула будет "резидентным" или "действительным" в ОЗУ (доступно без ошибки страницы; такая ОЗУ считается "используемой"). ); другое подмножество будет "в переходном состоянии" (в списке резервных или измененных страниц и доступно, но с ошибкой мягкой страницы), а остальное будет действительно выгружено - в файле страницы, требуя жесткой ошибки страницы для доступа.
Теперь 22 ГБ это много выгружаемого пула. Я имею в виду, действительно, очень много. Такое количество очень необычно. Я подозреваю, что у вас неисправный драйвер устройства, который пропускает выгружаемую память как сито.
Я бы использовал poolmon или Windows Performance Toolkit, чтобы узнать, что выделено для всего этого пула. Здесь много ответов на SU, которые показывают, как это сделать подробно.
В комментарии к вашему вопросу magicandre1981 ссылается на один из его ответов, в котором подробно описана процедура.
Кроме того, кажется, что что-то мешает записи в файл подкачки.
На вашем снимке экрана с RAMmap (и спасибо, что включили его) видно, что из 19 ГБ выгружаемого пула, занимающего ОЗУ (обратите внимание, это меньше, чем виртуальный размер), около 620 МБ является "активным". Это означает, что большая часть оперативной памяти считается "используемой". Это та часть, к которой можно получить доступ без ошибки страницы. У PTE, которые описывают эти виртуальные страницы, установлены свои "действительные" биты.
Почти столько же, около 680 МБ, находится в списке страниц в режиме ожидания.
И вот еще индикатор второй проблемы: более 17 ГБ находятся в списке "Модифицированные".
"Измененный" список страниц - это место, куда помещаются страницы, когда они перемещаются из рабочего набора после того, как их содержимое было изменено с момента их ввода. (Если содержимое страницы не было изменено с тех пор, как оно было перемещено на страницу, то, когда оно теряется из своего рабочего набора, оно просто помещается в список резервных страниц, часть "доступной" оперативной памяти и сразу же перенаправляется для другого использования.) Такие страницы не могут быть просто выпущены для использования каким-либо другим процессом; их содержимое должно быть сохранено. Для страниц, поддерживаемых файлом подкачки, "сохранено" означает "записано в файл подкачки".
После записи измененной страницы на диск она перемещается в резервный список, из которого она может быть переназначена. Резервный список считается частью "доступной" оперативной памяти. (Это также часть счетчика "Cached" в этом окне диспетчера задач.)
Таким образом, у вас есть более 17 ГБ ОЗУ в модифицированном списке страниц - ОЗУ, которое ваша система хотела бы записать в ваш файл подкачки.
Это дико излишне.
Большинство систем имеют в измененном списке не более нескольких процентов своей оперативной памяти. В системном процессе есть потоки, которые должны заботиться о записи измененных страниц обратно на диск, каждый раз, когда измененный список превышает небольшой порог. Они не делают работу.
Я заметил, что ваш текущий размер файла подкачки составляет около 5 ГБ, и для каждого вывода WMI он заполнен. (Таким образом , ваша система записывает в файл подкачки) . Но похоже, что расширение файла подкачки по какой-то причине не происходит.
Хм - вы ограничили размер файла подкачки максимум до 20 ГБ, и даже если он был расширен до этого размера, этого будет недостаточно для хранения его текущего содержимого плюс еще 17 ГБ. Возможно, если бы вы увеличили максимально возможный размер PF (Windows предлагает почти 40 ГБ), то все было бы неприкосновенно.
Но я сомневаюсь в этом. Я не вижу причин для Windows не расширять файл подкачки до предела. Правда, он не будет содержать все измененные страницы, но хранить большинство из них гораздо лучше, чем хранить так много в оперативной памяти.
Между тем, эти 17+ ГБ не "доступны" для другого использования. Вот почему ваш "Доступный" ОЗУ так мало.
Мы видели ошибки в размере файла подкачки, которые очищаются с помощью:
- отключить файл подкачки
- выключить и перезагрузить
- убедитесь, что старый файл подкачки исчез. Если нет, удалите его.
- установить размеры файла подкачки на что-то разумное
- при необходимости выключите и перезагрузите
Вы можете попробовать это.
Но ваша настоящая проблема в том, что вам действительно не нужно сначала 20 ГБ выгружаемого пула. Найти и исправить это.
После этого вы должны снова проверить использование вашего файла подкачки и установить его начальный размер как минимум вдвое больше, чем при обычном использовании. Нет веской причины устанавливать начальный размер меньше, чем обычно требуется вашей системе. (Мне нравится видеть, что файл подкачки используется не более чем на 25%, по причинам, связанным с алгоритмами распределения пространства - они работают намного лучше с большим количеством свободного места для работы.)
Кстати, обе страницы "Standby" и "Modified" (на мой взгляд, несколько вводящие в заблуждение) считаются частью "Cached" на этом экране диспетчера задач. Таким образом, тот факт, что у вас есть 17,4 ГБ "Модифицированный", объясняет тот огромный "Кэшированный" номер. Огромное число "кэшированных" само по себе не является проблемой; это один из симптомов.