если это помогает, Resource Monitor описывает все остальное ОЗУ как «Резервный»
«Standby» RAM находится в использовании. Он используется в качестве кеша страниц (он содержит страницы, недавно потерянные из всех рабочих наборов процессов; т. Е. Сбои страниц в них могут быть устранены без перехода на диск), а также для упреждающего кэширования файлов с помощью SuperFetch.
Он считается «доступным», поскольку резервные страницы не нужно записывать на диск, чтобы их можно было использовать для другого использования. Например, когда процесс сталкивается с ошибкой страницы, которая требует чтения с диска, этому физическому процессу должны быть выделены новые физические страницы, и при необходимости они могут быть взяты из списка ожидания. (Это не первый выбор для поиска страниц для этой цели, это будет бесплатный, а затем список нулевой страницы.)
Другими словами, ваша система работает так, как должна быть.
Вы можете заставить свою систему легко перевести ОЗУ в состояние «используется» с помощью инструмента командной строки testlimit
, одного из инструментов, используемых в экспериментах в Windows Internals . Он не является частью обычных инструментов sysinternals, но связан с ними; найти его здесь на сайте sysinternals. Загружаемый файл представляет собой ZIP-файл, содержащий две версии: testlimit.exe и testlimit64.exe. Оба они связаны с поддержкой больших адресов, поэтому 32-разрядная версия сможет выделять до 3 ГБ на 32-разрядной машине, загруженной с / 3 ГБ, до 4 ГБ на 64-разрядной машине.
c:\> testlimit -?
дает помощь.
c:\> testlimit -d 4 -c 512
попытается выделить 2 ГиБ виртуального адресного пространства частного процесса в 512 распределениях по 4 МБ каждый. Это должно нормально работать на 64-битной машине. На 32-битной машине, не загруженной с / 3GB (большинство нет), это может привести к ошибке немного раньше, потому что в процессе уже есть несколько MiB вещей (например, сама программа, все библиотеки DLL и т. Д.), Поэтому для программы выделяется не совсем 2 ГиБ.
В обоих случаях будет иметь место уменьшение «доступной» оперативной памяти и увеличение оперативной памяти «в использовании», но не обязательно на 2 ГБ, поскольку нет гарантии, что ОС оставит все 2 ГБ в частном рабочем наборе процесса. Даже если это произойдет в краткосрочной перспективе, вы можете заметить, что рабочий набор процесса уменьшится позже, когда ОС решит: «Хм, вы на самом деле ничего с этим не делаете, другим процессам это нужно больше» и выводит его на экран.
Слишком сильно увеличьте размер «чанков» выделения, соответственно сократив количество чанков, и скорее всего он потерпит неудачу раньше, поскольку каждое выделение должно быть практически непрерывным. Например, попробуйте найти семь блоков по 512 МБ в адресном пространстве 4 ГиБ, и вы, скорее всего, потерпите неудачу.
Если вы используете опцию l (eak) вместо d (irty), программа выделит виртуальное пространство, но никогда не будет ссылаться на него. Это не приведет к заметному уменьшению «доступной» оперативной памяти.
(Параметр d (irty) берет свое имя от «бита грязной страницы» в записи таблицы страниц x86 / x64, который устанавливается при обращении к соответствующей виртуальной странице с операндом в стиле «модифицировать»), что означает, что содержимое страницы имеет Это указывает Windows на то, что, если страница должна быть удалена из рабочего набора процесса, ее содержимое должно быть сохранено где-то перед тем, как страница может быть использована для чего-то другого. Страницы с установленным битом «грязный» переходят к «измененный список страниц» сразу после выселения, после чего Windows записывает их в соответствующие хранилища.)
Вам потребуется достаточное количество «коммитов», чтобы эти тесты работали, как описано выше (даже для опции l (eak), даже если эта опция не использует сколько-нибудь заметного объема ОЗУ). В частности, ваш «предел фиксации» должен быть как минимум на 2 ГиБ (или сколько вы выделяете) выше, чем «заряд фиксации» перед началом теста. Обратите внимание, что это применимо, даже если вы используете опцию l (eak), а не просто d (irty). Если вы достигнете этого предела, вы увидите всплывающие окна «системе не хватает памяти» или аналогичные. Конечно, лекарство состоит в том, чтобы добавить больше оперативной памяти и / или увеличить параметры файла подкачки.