Пора поговорить про физические страницы памяти. Рассмотрим как они сопоставляются с виртуальными страницами и какие свойства имеют.
Оглавление скрыть
Физические страницы памяти и их состояния
В Windows есть такая база данных — PFN (Page Frame Nubber). Она содержит все страницы физической памяти и их состояния. Состояния у станиц могут быть следующие:
- Active (valid) — на эту страницу есть корректная PTE запись. Это означает что если поток захочет прочитать данную страницу, то сразу прочитает её а не получит ошибку памяти.
- Transition — временное состояние страницы, означает что со страницей осуществляется операция ввода / вывода. При этом страницы пока еще нет ни в рабочем наборе ни в файле подкачки.
- Standby — страница была в рабочем наборе, но была удалена из него, при этом страница не изменялась с момента последний записи на диск.
- Modified — как standby, но страница была изменена, и еще не успела записаться на диск.
- Modified no-write — как modified, но помечена, чтобы не быть записанной на диск. Возможно такая страница чего-то ждет, может завершения транзакции, прежде чем будет возможность записать её на диск.
- Free — свободная страница. Но она содержит некие данные, оставленные предыдущим потоком. Такие страницы вначале проходят процедуру обнуления, прежде чем будут выданы новому потоку.
- Zeroed — обнуленные страницы. Это свободные страницы прошедшие процедуру обнуления. Эти страницы готовы для работы с новыми потоками.
- Room — такая страница может использоваться только для чтения.
- Bad — страница в отношении которой была получена ошибка, например ошибка четности. Поэтому страница не может быть использована.
Изучение страниц с помощью утилиты RamMap
Посмотреть на состояния страниц можно с помощью утилиты RamMap:
Как очистить КЭШ оперативной памяти в Windows 10
Столбцы в этой утилите показывают состояния страниц. А строки — чем эти страницы используются. Состояния страниц мы уже разобрали выше. Теперь пробежимся по строкам:
- Process Private — такие страницы используются процессами в системе;
- Mapped File — а эти страницы выделены для замапленных файлов;
- Shareable — общие страницы памяти, используемые разными процессами;
- Page Table — страницы в которых хранятся таблицы страниц;
- Paged Pool — выгружаемый пул;
- Nonpages Pool — невыгружаемый пул;
- System PTE — пул системных страниц. Таких как пространство ввода-вывода, стеки ядра и списки дескрипторов памяти, также тут могут находиться страницы виртуальных машин;
- Session Private — память, которая является частной для определенного сеанса, вошедшего в систему. Она будет выше на серверах RDS;
- Metafile — часть системного кеша который содержит метаданные NTFS;
- AWE (Address Windowing Extensions) — позволяет приложению отображать различные представления физической памяти в свое адресное пространство, обычно это используется SQL или другими приложениями баз данных;
- Driver Locked — страницы, заблокированные драйверами. Это может быть сделано для временных целей например ввод-вывод, или для постоянных например для RAM диска;
- Kernel Stack — страницы, используемые стеками потоков ядра;
- Unused — неиспользуемые страницы;
- Large Page — большие страницы (> 2 MB).
Обратите внимание — все обнуленные страницы у нас не используются (Unused). Некоторые приватные страницы процессов и страницы невыгружаемого пула находятся в переходном состоянии (transition). Страницы в состоянии modified no-write это метафайлы файловой системы (ожидают окончания транзакций).
КАК УСКОРИТЬ И ОСВОБОДИТЬ ОЗУ Windows 10 Pro? 100% лайфхак для оперативной памяти
Перемещение страниц
Страничные блоки перемещаются следующими способами:
- когда диспетчеру памяти нужна обнуленная страница, он ищет их в списке обнуленных страниц;
- если список обнуленных страниц пуст, то страница берется из списка свободных страниц и обнуляется;
- а если и список свободных страниц пуст, то происходит поиск среди ожидающих страниц (standby и modified).
Когда страница выходит из рабочего набора она может быть в двух состояниях:
- modified — еще не записались изменения на диск. Такие страницы проходят подсистему записи измененных страниц и становятся standby.
- standby — уже записались изменения на диск. Такие страницы могут стать свободными (free), а после прохода через поток обнуления — обнуленными (zeroed).
Когда процесс завершается, то все его страницы из рабочего набора переходят сразу в список свободных страниц, затем такие страницы могут стать обнуленными.
Подсистема записи измененных страниц записывает страницы либо в обычные файлы (которые есть на файловой системе), либо в файл подкачки если реального файла для этой страницы нет.
Поток обнуления страницы заполняет страницу нулями, чтобы следующий поток не получил доступ к данным предыдущего потока.
Наблюдение за свободными и обнуленными страницами
Давайте понаблюдаем за свободными и обнуленными страницами в Process Explorer. Для этого перейдите по пунктам меню «View / System Information«:
Для примера можете запустить Testlimit64.exe -d 1 -c 1500 и в системе появится процесс, который займет 1500 МБ памяти. А в момент завершения процесса (нажатия ctrl+c) в системе образуется много свободных страниц, которые затем перейдут в список обнуленных страниц.
Приоритеты страниц памяти
Каждая страница в системе имеет свой приоритет, это видно в утилите Process Explorer, если перейти по меню «View / System Information«:
Страницы в списке ожидания (standby) с наименьшим приоритетом используются раньше, чем процессы с наивысшим приоритетом.
За приоритет отвечает рассматриваемая ранее система супервыборки. То есть самые активные данные получают наивысший приоритет и остаются в оперативной памяти дольше, а редко используемые данные сбрасываются на диск чаще и их страницы обнуляются.
Лимиты физической памяти
Ну и раз мы говорим про физическую память, оставлю здесь таблицу с лимитами физической памяти для Windows.
На ограничение физической памяти влияет:
- разрядность системы (32 / 64)
- версия системы (Windows 7, Windows 8, Windows 10)
- версия лицензии (Home, Professional)
Имя статьи
Физические страницы памяти для Windows
Пора поговорить про физические страницы памяти. Рассмотрим как они сопоставляются с виртуальными страницами и какие свойства имеют.
Источник: sysadminium.ru
Освобождение оперативной памяти Windows Server 2008R2 без перезагрузки
Вот, как это можно сделать:
Перейду сразу к решению проблемы:
Из сайта Microsoft скачиваете утилитку RAMMap:
При запуске она покажет все процесы, даже системние, которих не увидите в диспетчере задач:
Если какой-то софт не освобождает память после себя, чтобы не перегружать из-за этого сервер, в RAMMap нужно по очереди выбрать следуюющие функции:
Empty -> Standby List
Empty -> SystemWorkingSet
И нажать F5 чтобы увидить разницу.
Вот, что получиться после этого:
Видим, что системние ресурси (Metafile, Mapped File), которие использовались системой освободили память. На скриншоте из диспетчером задач видно, что освободилось больше, чем полтора ГБ на сервере, которий и так нре был загружен под завязку.
Собственно, что и было нужно!
- windows server 2008 r2
- оперативная память
Источник: habr.com
Как использовать RAMMap, чтобы узнать фактическое потребление оперативной памяти
Несмотря на то, что Оперативная память Память управление было значительно улучшено с Windows 10 , операционная система довольно «ленива» (из-за своей доброжелательности), когда дело доходит до сообщения пользователям, какие программы или службы потребляют оперативную память. системы. К счастью, есть бесплатные программы вроде RAMMap чтобы иметь возможность подробно узнать потребление системы ОЗУ , и в этой статье мы расскажем, как его использовать и интерпретировать данные.
Если в Windows 10 вы хотите знать, сколько оперативной памяти потребляют открытые вами программы, вполне вероятно, что у вас остались сомнения, поскольку показанное потребление не соответствует реальному. Например, это то, что показывает вкладка «Процессы» в диспетчере задач Windows 10, где программы сортируются по объему потребляемой ими оперативной памяти.
Если мы добавим потребление, которое отображается здесь со всеми открытыми программами, в результате мы получим, что теоретически потребляется около 9 ГБ ОЗУ, но, тем не менее, в разделе производительности говорится, что мы потребляем около 14 ГБ ОЗУ. RAM память прямо сейчас.
Почему такое большое несоответствие? Как узнать фактическое потребление оперативной памяти системы? Для этого есть RAMMap, и затем мы покажем вам, как ее использовать.
Узнайте реальное потребление оперативной памяти с RAMMap
RAMMap — это инструмент, принадлежащий Microsoftпакет Sysinternals, его загрузка и использование бесплатны для всех пользователей. Чтобы скачать его, вам просто нужно получить доступ к этому веб-страница и нажмите «Загрузить RAMMap».
Вы загрузите сжатый файл, который, очевидно, вам придется распаковать в каталог на жестком диске, и запустить файл RAMMap.exe. Это будет то, что вы увидите изначально.
Это программное обеспечение на самом деле предназначено для разработчиков и инженеров, чтобы они могли разрабатывать свои приложения и программы, но оно также может дать нам очень полезную информацию для пользователей. Для этого вам в первую очередь нужно перейти на вкладку «Процессы», где будут подробно описаны все процессы, которые мы в данный момент загрузили в память, включая службы. Мы рекомендуем выполнять сортировку по столбцу «Всего», просто щелкнув его имя, чтобы мы увидели вверху процессы, которые потребляют больше всего памяти.
Здесь у нас есть подробная информация обо ВСЕМ, что загружено в оперативную память оборудования, и на самом деле здесь, если вы добавите весь столбец Всего, это даст вам реальное потребление оперативной памяти системы, так как добавляются оба назначенных память и зарезервированная, а также занятая в системном файле подкачки.
- В Total мы можем увидеть общий объем памяти, доступный в системе, и то, как Windows распределяет ее.
- В Active мы видим объем памяти, который в настоящее время используется всеми приложениями и службами.
- В режиме ожидания мы видим, что системная память выделена, но находится в режиме ожидания, и эта Windows не считает ее «использованной».
Если вы посмотрите, здесь у нас есть 13.7 ГБ, которые были показаны ранее на вкладке «Производительность» диспетчера задач.
Здесь вы также можете получить более глубокие знания о том, как Windows 10 управляет оперативной памятью. В этом примере у нас установлено 32 ГБ памяти, и есть 13.7 ГБ потребляемой (активная), но Windows назначила еще 11.3 ГБ (ждущий), так что в действительности занято около 25 ГБ памяти, а доступно только 7 ГБ ( это отражено в столбце Free).
Как видите, RAMMap предоставит вам гораздо более подробную информацию о том, что потребляет оперативную память вашего компьютера, и это может быть особенно полезно, если в любой момент у вас заканчивается доступная оперативная память в системе, а вы этого не делаете. знаю, почему.
Источник: itigic.com