2.1.2 Глобальное использование памяти
Менеджер памяти Windows 7 следит за страницами, которые не находятся в рабочих наборах, помещая их в один из четырёх листов:
Нулевой лист (англ. Zero page list ).
o Страницы, инициализированные нулём и готовые к использованию, когда менеджеру понадобится новая страница [20a] .
Лист изменения (англ. Modified page list ).
o Страницы, которые были изменены, но к которым не обращались некоторое время, из-за чего были убраны из рабочего набора. После того, как эти страницы были копированы в файл подкачки, они перемещаются в лист ожидания. Когда памяти начинает не хватать, менеджер сначала копирует несколько страниц в файл и проверяет состояние системы, если нехватка всё равно приближается, то он начинает быстро копировать больше страниц.
Когда система больше не подвержена риску, менеджер копирует страницы в фоновом режиме. Такой принцип работы уменьшает риск проблем с целостностью данных, которые могут возникнуть, если страницы этого листа останутся в памяти [20a] .
Лист ожидания (англ. Standby page list ).
o Неизменённые («чистые», «негрязные» — копия которых в файле подкачки ровно такая же) страницы, которые были удалены из рабочих процессов.
Чаще это страницы из недавно использованных файлов. Это делает данный лист кэшем. При надобности менеджер быстро возвращает страницу в нужный рабочий набор. Все эти страницы могут быть переопределены для новых выделений памяти, почему и относятся к доступной памяти. Именно этот лист детерминирует тот факт, что много свободной памяти не есть хорошо для производительности, о чём мы поговорим в разделе 2.2.
Свободный лист (англ. Free page list ).
o Неизменённые страницы, которые не были выделены ни для какой цели или были выделены и уже возвращены для повторного использования. Менеджер имеет подпроцесс, который периодически просыпается, чтобы инициализировать данные страницы и переместить их в нулевой лист [20a] .
Страница 16 из 31
На рис. 12 представлена нижняя левая таблица под названием «Физическая память».
Здесь можно увидеть несколько категорий памяти, которые основываются на понятиях листов памяти, рассмотренных ранее:
Зарезервировано оборудованием (англ. Hardware Reserved ). Резервации обычно составляют около 10-70Мб, но в зависимости от аппаратной конфигурации может достигать и нескольких сотен Мб. Примеры элементов, которые могут влиять на эту цифру включают: System BIOS; ресурсы материнской платы, такие как I/O
продвинутые программируемые контроллеры прерываний APIC; любой девайс,
требующий ввод-вывод через порты, такой как звуковая карта; PCI-E
конфигурационное пространство; любая дополнительная PCI память; VGA память для видео апертуры; другой чипсет и системные устройства, такие как флэш девайсы
Используется (англ. In Use ). Память, используемая процессами, драйверами и ОС.
Из « установленного » количества памяти вычитается память, « зарезервированная оборудованием », а также находящаяся в категориях « ожидания », « изменено » и
Изменено (англ. Modified ). Страницы из листа изменения. Память, которая должна быть помещена на диск, чтобы её можно было переопределить (поместить в лист ожидания).
Ожидание (англ. Standby ). Страницы из листа ожидания. Кэшированные данные,
которые давно не использовались и могут быть возвращены или переопределены для других целей.
Свободно (англ. Free ). Страницы из свободного и нулевого листов. Память, которая не имеет никаких важных значений и будет первая использована в случае необходимости.
И общая статистика:
Доступно (англ. Available ). Память, которая может незамедлительно быть использована для различных целей. Включает в себя память типов « Ожидание » и
« Свободно » (то есть три листа).
Страница 17 из 31
Кэшировано (англ. Cached ). Кэшированная память для оперативного доступа.
Включает в себя память типов « Ожидание » и « Изменено » (то есть два листа).
Всего (англ. Total ). Объём физической оперативной памяти, которая доступна для работы процессов, драйверов и ОС. Из « установленного » количества памяти вычитается память, « зарезервированная оборудованием »
Установлено (англ. Installed ). Объём установленной физической оперативной памяти.
Главное о Last-Modified: что это, как настроить и проверить

Last-modified — это http-заголовок с датой и временем последнего изменения страницы по мнению сервера. Шаблон такой:
Это необязательный для заполнения заголовок. Но боты смотрят на заголовок Last-modified, когда индексируют страницу, чтобы понимать, есть ли смысл посещать ее повторно.
Как это работает:
При первом запросе документа сервер сообщает текущее время и дату с точным временем последнего изменения документа в http-заголовке Last-Modified.
При повторном обращении к документу бот или браузер отправят на сервер, где лежит кэшированная страница, запрос If-Modified-Since — не изменилась ли страница после даты, полученной в Last-Modified? Если изменилась, нужна новая версия.
В ответ боты и браузер получают информацию, когда страницу изменили. Дальше возможны два варианта:
если после посещения бота на странице что-то поменяли, сервер возвратит 200 ОК и будет загружать новое содержимое страницы, а робот поймет, что ему нужно обработать изменения;
если с последнего посещения страница не изменилась, сервер возвращает заголовок «304 Not Modified» и не будет загружать сайт. Страница загрузится из кэша, боты поймут, что изменений нет, и переобходить ее не будут.
Чем полезен Last-modified
Яндекс советует настроить отправку заголовка Last-Modified и обработку запроса If-Modified-Since:
Чем это полезно для сайта:
Сократить нагрузку роботам — ускорить индексацию
Число страниц, которые поисковый робот может проанализировать за один заход, ограничено. Last-modified позволяет оптимизировать краулинговый бюджет сайта.
Поисковые боты благодаря датам изменений контента могут расставить приоритеты в обходе: начать с важных страниц, где что-то изменилось. Это повысит индексацию новых материалов.
Отобразить новую дату материала
Если веб-мастер указал дату в корректном формате, страницы сайта будут участвовать в сортировке по датам в выдаче. Поисковики и пользователи любят свежие материалы: выше шанс, что информация будет актуальной. Указывать даты последних изменений на страницах крупных сайтов советует и представитель Google Джон Мюллер.
Ускорить загрузку и сэкономить трафик
Пользователю не нужно каждый раз заново загружать страницу, если есть кэш. Страницы, которые никак не поменялись с последнего обращения, загрузятся из кэша — это позволит сэкономить трафик пользователей и ускорить загрузку страницы.
Снизить нагрузку на сервер
Серверу нужно будет передавать пользователю только те страницы, где что-то обновили. Если изменений не было, в дело пойдут версии из кэша.
Особенно это важно страницам с высокой посещаемостью некоторых тематик. Например, пользователь ждет письмо, обновление результатов матча или появление новых вакансий и постоянно обновляет обновлять страницу. Если таких пользователей много, возрастет нагрузка на сервер из-за постоянных запросов страницы и ее отрисовки. Если правильно настроить Last-Modified, сервер передаст страницу один раз, и пока на ней ничего не изменилось, на запросы будет отвечать «304 Not Modified» — изменений нет, повторно загружать не надо.
Как настроить Last-modified
Перед настройкой Last Modified нужно убедиться, что ваш сервер вообще его поддерживает.
Настройка Last-modified через плагины или вручную
У популярных CMS есть готовые решения, к примеру:
Часто для того же результата достаточно реализованного кэширования на CMS.
Если сайт статический, достаточно на каждой странице указать Last-Modified с датой последнего изменения. А после обновлений менять дату вручную.
Если динамическая, то есть постоянно обновляется, можно настроить отправку http-заголовка Last-Modified на php, добавив в head страницы код:
Первая строка преобразует дату в метку в формате Unix Time Stamp, используя время изменения текущей страницы, которое определяет автоматически.
Функция gmdate возвращает текущее время в формате <день недели>, <число> <название месяца> <год> <час>:<минута>:<секунда> GMT.
Дальше проверяем If-Modified-Since, если изменений нет — отдаем 304 Not Modified и останавливаем работу скрипта, если есть — ответ сервера 200 ОК, отдаем страницу целиком.
Как указать дату правильно
Если указать дату обновления некорректно, боты все равно проиндексируют страницу, но она не сможет участвовать в сортировке результатов по дате.
Порядок должен быть таким, используется GMT — время по Гринвичу:
Как проверить Last-Modified
У PR-CY есть бесплатный инструмент, позволяющий взглянуть на сайт глазами поискового робота. Если Last-Modified есть, инструмент его покажет:
Проверка страницы в сервисе PR-CY
В панели Яндекс.Вебмастера есть инструмент «Проверка ответа сервера»:
Проверка ответа сервера
Сервер будет отдавать 304 Not Modified в случае, когда страница не изменилась с последнего посещения, и 200 ОК, если на ней что-то меняли.
Вы используете Last-Modified, видите в нем смысл? Расскажите в комментариях!
Очистка Standby List в WPS Performance Station
Дорогие камрады, снова здравствуйте!
По чистому совпадению получилось так, что почти одновременно с выходом видео товарища Сталкаша у нас вышло обновление добавляющее очистку Standby List при оптимизации RAM
На самом деле, с товарищем Сталкашем наше обновление не связано, т.к. про Standby List нам 26го марта написал в группу один из пользователей приложения сославшись на следующий пост на Reddit`е:
Ну и воспользовавшись основным приемуществом инди-команд перед большими студиями, мы включили данный функционал в наше сегодняшнее обновление 🙂
В интернете уже есть консольная утилита, которая предлагает способ очистки Standby List, но в отличии от неё у WPS есть адаптивный алгоритм, который самостоятельно и абсолютно автоматически применяет данную очистку тогда, когда это необходимо пользователю.
Соответственно, новый функционал доступен абсолютно бесплатно, скачать дистрибутив приложения можно по этой ссылке:
Windows — How can I flush modified memory?
I have no pagefile and a lot of modified memory according to resource monitor (Win 7 x64). The answerer to my original question said that the modified memory must be written to the «backing store» and when I asked if he meant files on the disk he said yes. So I have Sysinternals’ RamMap program and I’ve tried the option ‘Empty Modified Page List’ but nothing changes.
Right now I’m using gigabytes of modified memory and it seems it’s always that way with VMWare Workstation (several VMs open) and Firefox (ton of tabs open). How can I flush the modified memory, and is there any way to make Windows do that more often short of enabling a pagefile?
EDIT — I’ve since discovered the source of several gigs of modified memory came from running Sysinternals’ Process Monitor. When I closed Process Monitor I got back a few gigs. That modified memory does not show in the process list in RAMMap.