Ну, во-первых, прежде чем я перейду к более подробному ответу. На первом снимке экрана ваш Non-Page Pool (тип использования памяти ядра) находится на уровне 1.3 Гб. Это кажется мне необычно высоким, особенно в течение всего 30 минут после загрузки. Думаю, я мог видеть, как NP Pool получает такой высокий уровень после длительного использования или с программой, которая протекала как сито. Напротив, мой NP Pool обычно составляет от 100 до 200 мегабайт, а мой страничный пул может достигать 400 или 500 (и это после того, как моя система работала без перезагрузки в течение нескольких недель).
Вы можете включить несколько дополнительных столбцов в диспетчере задач, щелкнув правой кнопкой мыши по заголовкам столбцов и выбрав выбранные столбцы. Вы должны добавить Working Set (private)
, Working Set (shared)
, Commit
и NP Pool
. Я просканирую все ваши процессы от всех пользователей и посмотрю, есть ли у кого-нибудь из них пул NP более 256KB. Если вы видите любой, особенно тот, который значительно выше, то это может быть источником проблемы или, по крайней мере, ее частью.
Ваш общий рабочий набор, объем физической памяти, используемой процессом, является комбинацией частного и общего рабочих наборов (WS). Частная память обычно больше для большинства процессов, однако некоторые из них используют больший объем общей памяти WS. Обычно эти два набора должны составлять общую сумму WS. Обязательный (Commit) - это количество вашего рабочего набора, которое было зафиксировано в хранилище резервных копий (в большинстве случаев, в файле страницы Windows). Фоновые приложения часто имеют больший объем фиксации, чем WS, что указывает на то, что большая часть их пула страниц была заменена из памяти в ваш файл подкачки (что довольно нормально для настольных приложений, которые были минимизированы и не использовались в течение некоторого времени). 0x2 и 0x2 и Не-страничный пул - это память, которая не может и никогда не будет подменяться из физической памяти…что, по сути, является вашим постоянным минимальным использованием физической памяти. Память NP Pool часто содержит программный код и критические секции, которые должны находиться в физической памяти, чтобы вести себя корректно или безопасно, специальные кучи и т.д. Из 60 процессов, если все они имеют 256 КБ памяти NP Pool, то ваш абсолютный минимум использования физической памяти составит около 15 360 КБ. В большинстве случаев одно или два приложения могут иметь 256KB NP Pool, в то время как большинство из них имеют меньше, часто значительно меньше (или ни одного). Весьма маловероятно, что система когда-нибудь выведет на экран весь рабочий набор всех процессов, так что никогда не ждите, что использование памяти получит такой низкий уровень.
Наконец, смысл наличия большего количества памяти в том, чтобы избежать необходимости выстраивать данные в и из расширенного пространства памяти (swap, файл страницы) на физическом диске. Подкачка страниц - это процесс, который включает в себя перемещение блоков выделенной физической памяти, перемещение одних на диск, а других в физическую память с диска. Подкачка страниц - это простой и крайне нежелательный процесс. Это не “плохо” per se, но это может реально затянуть производительность, когда это происходит слишком часто. Конечная цель увеличения общего объема физической памяти в системе - позволить большему количеству процессов хранить большее количество своих коммитов в физической памяти (больший рабочий набор). Потребление памяти не является проблемой, и когда больше выполняющихся процессов используют больше памяти, общая производительность системы и активная производительность процессов обычно будет выше, так как активность физического диска, связанная с доступом к памяти (в частности, ошибки страницы) будет ниже. 0x2 и 0x2 и Windows управляет памятью для вас, и автоматически страницы данных в и из памяти к и от страницы (подкачки) файл для вас. Если вы запустили процесс, которому требуется 9 ГБ памяти, а ваша система уже использует 4 ГБ (из 12 ГБ), то система автоматически выяснит, какие процессы не нуждаются в немедленном доступе ко всему их рабочему набору, и выведет часть или весь пул страниц для подкачки, чтобы освободить этот лишний 1 ГБ. Если вашему большому процессу в конце концов понадобится больше памяти, windows еще больше уменьшит рабочий набор других процессов до тех пор, пока у него не будет достаточно свободного места для выделения только что запрошенного блока. Ваш большой процесс в конечном итоге может потреблять всю доступную память, кроме NP Pool и, возможно, некоторые дополнительные минимальные накладные расходы для периодически выполняющихся процессов, которые не позволяют Windows высвободить больше рабочего набора (т.е. у них есть ошибки на странице, которые Windows в противном случае подкачала бы из физической памяти, но из-за того, что они запрашиваются, их нельзя переместить).
Если процессу требуется больше памяти, чем ему разрешено (32-битным процессам обычно доступно 2 Гб, а некоторым чуть менее 4 Гб с расширенными техниками, в то время как 64-битным процессам обычно доступно около 48 Гб памяти, каждый), то Windows иногда пытается виртуализировать свою память с помощью пространства подкачки. Если 32-битное приложение хочет использовать максимально допустимый объем 2Гб, но доступно только 1.2Гб, windows зарезервирует полные 2Гб в файле страниц, и будет перемещать собственные данные процессов внутрь и наружу файла страниц по мере необходимости для поддержки использования памяти приложения. Общее использование “памяти” в этом случае может оказаться больше, чем доступная физическая память, при прохождении мимо Тотальный Комитет. Обычно суммарный размер файла страницы, который при управлении системой обычно в 2-3 раза превышает физический объем памяти, составляет максимум. В вашем случае, Общий объем памяти составит около 24 Гб, или в 2 раза больше физического объема памяти в 12 Гб (и это указано на первом снимке экрана, где указано его состояние: Зафиксируйте (Гб) 3 / 23).
Один последний пункт. В своем ответе вы сказали, что у вас есть 16 Гб оперативной памяти, где в качестве диспетчера задач диспетчер видит только 12 Гб оперативной памяти. Одна из двух вещей здесь. Либо ваша система действительно имеет только 12Гб оперативной памяти, либо одна из ваших ключей не регистрируется должным образом. Если палочка тарана (я предполагаю 4х 4Гб), то она может быть плохой, может быть неправильно расположена в системной плате, или на системной плате может возникнуть проблема с обнаружением памяти.
Чтобы проверить, не является ли это последней версией, необходимо сначала обновить BIOS материнской платы до последней версии. У меня была похожая проблема… мои шесть палочек Tripple-Channel DDR3 ram (6х2Гб) были хороши, основываясь на индивидуальном тестировании каждой из них… но моя материнская плата случайным образом решила не считать один или два из них так часто, часто оставляя мне только 8Гб ram. Обновление BIOS исправило проблему, и теперь у меня есть надежный доступ ко всем 12 Гб памяти.