Разное

System working set что это: Управление памятью в Windows как оно есть [1/3] / Хабр

19.08.2005

Содержание

Как быстро очистить память в Windows 10 при ее внезапном заполнении

В последних инсайдерских сборках Windows 10 есть маленький баг, который при определенных обстоятельствах может привести к заполнению резервной памяти, в результате чего наблюдается резкое снижение производительности системы. Чаще всего такое внезапное заполнение памяти наблюдается во время игр и работы некоторых приложений, причем последние совсем необязательно должны предъявлять к системе высокие требования.

В Microsoft о проблеме знают и в следующих версиях, вероятно, устранят ее причины, а пока что можно воспользоваться альтернативой — сторонними утилитами для работы с оперативной памятью. Суть временного исправление заключается в следующем — время от времени во время игры нужно запускать функцию, которая будет очищать память. Такой запуск лучше всего реализовать с помощью встроенного планировщика задач, так вам не придется отвлекаться во время работы или игры.

Для дела вам понадобится маленькая консольная тулза Empty Standby List.

Она служит для одной единственной цели — очистке памяти, не нуждается в установке и настройке. Чтобы очистить с помощью тулзы память, достаточно через равные промежутки времени запускать ее исполняемый файл. Посему создаем в планировщике заданий новую задачу.

Тип действия выбираем «Запуск программы», указываем путь к исполняемому файлу утилиты.

В параметрах триггера выбираем «По расписанию», включаем и задаем повтор выполнения задачи через нужный отрезок времени.

Вместо Empty Standby List для очистки памяти в ручном режиме вы также можете использовать утилиту RamMap, входящую в состав пакета Sysinternals Suite

. Запустив утилиту, выберите в меню «Emrty» нужные вам опции.

Функция Empty Working Sets выгружает все запущенные приложения и процессы, Empty Modified Page List очищает только модифицированные страницы, Empty Priority 0 Standby List выгружает из памяти процессы с низким приоритетом, функция Empty Standby List очищает всю ОЗУ независимо от приоритетов процессов.

Примечание: старайтесь по возможности не использовать опцию Empty Working Sets, так как в этом случае система предпримет попытку восстановить данные из файла подкачки. В результате количество обращений к HDD/SSD резко возрастет, что в свою очередь в моменте может сказаться не лучшим образом на производительности Windows.

Тулза: wj32.org/wp/software/empty-standby-list

Добавление области подкачки на Ubuntu 20.04

Введение

Одним из способов защиты от ошибок, связанных с недостатком памяти в приложениях, является добавление области подкачки на вашем сервере. В этом руководстве мы расскажем, как добавить файл подкачки на сервер Ubuntu 20.04.

<$>​​[warning] Предупреждение. Хотя подкачка в целом рекомендуется для систем с использованием традиционных жестких дисков, ее использование с SSD-накопителями может со временем вызывать ухудшение работоспособности аппаратного обеспечения. В связи с этим мы не рекомендуем активировать подкачку при использовании услуг DigitalOcean или любого другого провайдера, применяющего SSD-накопители. <$>

Что такое подкачка?

Подкачка — это часть хранилища на жестком диске, которая была выделена для временного хранения данных операционной системой в случае переполнения оперативной памяти. Это позволит вам увеличить количество информации, которое ваш сервер может хранить в рабочей памяти, соблюдая определенные меры предосторожности. Область подкачки на жестком диске будет использоваться в основном тогда, когда в оперативной памяти больше нет достаточного места хранения данных для приложений.

Чтение и запись информации с диска намного медленнее, чем из оперативной памяти. Операционная система будет по-прежнему предпочитать работать с данными приложений в памяти, а подкачку использовать для более старых данных. Как правило, полезно перестраховываться и иметь область подкачки в качестве резерва на случай нехватки оперативной памяти, чтобы исключить ошибки памяти в системах без SSD.

Шаг 1 — Проверка информации о подкачке в системе

Сначала мы можем посмотреть, есть ли уже в системе область подкачки. Можно иметь несколько файлов или разделов подкачки, но обычно одного достаточно.

Можно узнать, сконфигурирована ли в системе подкачка, введя:

  1. sudo swapon --show

Если после этой команды ничего не появляется, в системе сейчас нет области подкачки.

Можно убедиться в отсутствии активной подкачки при помощи утилиты free:

  1. free -h

Output

total used free shared buff/cache available Mem: 981Mi 122Mi 647Mi 0.0Ki 211Mi 714Mi Swap: 0B 0B 0B

В строке ​​​Swap видно​​​, что в системе отсутствует активная подкачка.

Шаг 2 — Проверка свободного пространства в разделе жесткого диска

Перед созданием файла подкачки проверим текущее состояние диска, чтобы убедиться, что у нас достаточно места. Вводим:

  1. df -h

Output

Filesystem Size Used Avail Use% Mounted on udev 474M 0 474M 0% /dev tmpfs 99M 932K 98M 1% /run
/dev/vda1 25G 1.4G 23G 7% /
tmpfs 491M 0 491M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 491M 0 491M 0% /sys/fs/cgroup /dev/vda15 105M 3.9M 101M 4% /boot/efi /dev/loop0 55M 55M 0 100% /snap/core18/1705 /dev/loop1 69M 69M 0 100% /snap/lxd/14804 /dev/loop2 28M 28M 0 100% /snap/snapd/7264 tmpfs 99M 0 99M 0% /run/user/1000

В данном случае устройство с / в столбце ​​​​​​Mounted on​​​ — наш диск. В данном примере у нас достаточно места (использовано только 1,4 Гбайт). Ваше использование, вероятно, будет другим.

Хотя существует много мнений относительно правильного размера области подкачки, на самом деле он зависит от ваших личных предпочтений и требований приложений. Обычно можно начать с объема, равного объему оперативной памяти в системе, или в два раза большего. Еще одно полезное общее правило — любое превышение 4 Гбайт для области подкачки, скорее всего, не нужно, если вы используете ее только для резервирования оперативной памяти.

Шаг 3 — Создание файла подкачки

Теперь, когда известно свободное место на жестком диске, можно создать файл подкачки в нашей файловой системе. Мы добавим файл необходимого размера под названием

swapfile в корневую (/) директорию.

Лучше всего создавать файл подкачки при помощи программы fallocate. Эта команда мгновенно создает файл указанного размера.

Поскольку на сервере в нашем случае 1 Гбайт оперативной памяти, в этом руководстве создадим файл размером 1 Гбайт. Скорректируйте с учетом необходимости на вашем сервере:

  1. sudo fallocate -l 1G /swapfile

Чтобы проверить правильность выделенного объема памяти, введите:

  1. ls -lh /swapfile
  1. -rw-r--r-- 1 root root 1.0G Apr 25 11:14 /swapfile

Файл создан с правильным выделенным объемом памяти.

Шаг 4 — Активация файла подкачки

Теперь, когда у нас есть файл правильного размера, нам нужно превратить его в пространство подкачки.

Сначала нужно изменить права доступа к файлу, чтобы только пользователи с правами root могли читать его содержимое. Это предотвращает доступ обычных пользователей к файлу — такой доступ может существенно влиять на безопасность.

Чтобы передать все права доступа пользователям root, введите:

  1. sudo chmod 600 /swapfile

Проверьте изменение прав доступа, введя следующее:

  1. ls -lh /swapfile

Output

-rw------- 1 root root 1.0G Apr 25 11:14 /swapfile

Теперь только у пользователя с правами root отмечены флажки чтения и записи.

Теперь можем отметить файл как пространство подкачки, введя следующее:

  1. sudo mkswap /swapfile

Output

Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes) no label, UUID=6e965805-2ab9-450f-aed6-577e74089dbf

После этого мы можем активировать файл подкачки, чтобы система могла его использовать:

  1. sudo swapon /swapfile

Убедитесь, что пространство подкачки активировано, введя следующее:

  1. sudo swapon --show

Output

NAME TYPE SIZE USED PRIO /swapfile file 1024M 0B -2

Чтобы подтвердить наши выводы, можем снова проверить ответ утилиты free:

  1. free -h

Output

total used free shared buff/cache available Mem: 981Mi 123Mi 644Mi 0.0Ki 213Mi 714Mi Swap: 1.0Gi 0B 1.0Gi

Подкачка успешно настроена, и операционная система начнет использовать ее по мере необходимости.

Шаг 5 — Сделать файл подкачки постоянным

В результате внесенных нами изменений файл подкачки активирован для текущей сессии. После перезагрузки сервер не сохранит настройки подкачки автоматически. Мы можем изменить это, добавив файл подкачки к файлу /etc/fstab.

Сделайте резервную копию файла /etc/fstab на случай если что-то пойдет не так:

  1. sudo cp /etc/fstab /etc/fstab.bak

Добавьте информацию о файле подкачки в конец файла /etc/fstab, введя следующее:

  1. echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Далее рассмотрим некоторые настройки, которые мы сможем обновить, чтобы настроить пространство подкачки.

Шаг 6 — Изменение настроек подкачки

Существует несколько настраиваемых опций, влияющих на производительность системы при работе с пространством подкачки.

Настройка параметра Swappiness

Параметр swappiness определяет, как часто система выгружает данные из оперативной памяти в пространство подкачки. Его значение выражается числом от 0 до 100 процентов.

При значениях, близких к нулю, ядро не будет выгружать данные на диск, если в этом нет абсолютной необходимости. Взаимодействие с файлом подкачки требует гораздо больше времени, чем взаимодействие с оперативной памятью, и может вызывать значительное снижение производительности. Если система не зависит от подкачки, то, как правило, ее производительность повышается.

При значениях, близких к 100, система будет пытаться выгрузить больше данных на подкачку, чтобы разгрузить оперативную память. В зависимости от профиля памяти приложений и от тех задач, которые ставятся перед сервером, в некоторых случаях это плюс.

Можем увидеть текущее значение фактора swappiness, введя следующее:

  1. cat /proc/sys/vm/swappiness

Output

60

Для настольного компьютера неплохое значение swappiness — 60. Для сервера, возможно, вы захотите приблизить его к 0.

Можно задать другое значение swappiness при помощи команды sysctl.

Например, чтобы установить значение swappiness 10, можно ввести следующее:

  1. sudo sysctl vm.swappiness=10

Output

vm.swappiness = 10

Эта настройка будет сохраняться до следующей перезагрузки. Можно автоматически задать это значение при перезагрузке, добавив строку в файл /etc/sysctl.conf:

  1. sudo nano /etc/sysctl.conf

Внизу можно ввести следующее:

/etc/sysctl.conf

vm.swappiness=10

Сохраните файл и закройте его после завершения.

Изменение настроек нагрузки кэш-памяти

Еще одно связанное значение, которое вы, возможно, захотите изменить — vfs_cache_pressure. Эта настройка определяет, насколько система будет кэшировать данные inode и dentry по сравнению с другими данными.

По сути, это данные доступа к файловой системе. Как правило, искать их довольно сложно, а запрашиваются они часто, так что кэш-память в этом случае весьма полезна. Чтобы узнать текущее значение этого параметра, можно еще раз запросить файловую систему proc:

  1. cat /proc/sys/vm/vfs_cache_pressure

Output

100

Согласно текущим настройкам, система удаляет данные инодов из кэша слишком быстро. Можно задать более консервативное значение, например 50, введя следующее:

  1. sudo sysctl vm.vfs_cache_pressure=50

Output

vm.vfs_cache_pressure = 50

Опять-таки, это значение действительно только для текущей сессии. Чтобы сделать его постоянным, нужно (как и в случае со swappiness) изменить файл конфигурации:

  1. sudo nano /etc/sysctl.conf

Внизу добавьте строку с новым значением:

/etc/sysctl.conf

vm.vfs_cache_pressure=50

Сохраните и закройте файл после завершения.

Заключение

Следуя настоящему руководству, можно использовать оперативную память более эффективно, предотвращая исключения нехватки памяти. Пространство подкачки может быть весьма полезным для предотвращения некоторых распространенных проблем.

Когда возникают ошибки нехватки памяти или когда система не может запустить нужные приложения, наилучшее решение — оптимизировать конфигурации приложений или обновить сервер.

Private Bytes VS Рабочий набор в Process Explorer

Боюсь, не все так просто. В частности, частные байты не очень полезны для ответа на вопрос, который вы задаете.

Первое, что нужно иметь в виду, это то, что страница памяти может существовать в основной памяти или во внешнем хранилище (в наши дни «разбиение на диски» или «подкачка»). Второе — это то, что процесс будет иметь частные страницы памяти на своем месте, но также будет использовать объекты на общих страницах, которые другие процессы используют в то же время.

Рабочий набор — это размер страниц, принадлежащих процессу, которые в данный момент хранятся в основной памяти. Когда страница памяти, используемая процессом, перемещается в файл подкачки, она удаляется из метрики рабочего набора, а когда она вызывается обратно в основную память, она снова добавляется.

Однако рабочий набор не относится исключительно к памяти, которой владеет ваш процесс. процессы используют много объектов общей памяти, и размер этих объектов отражается в статистике. к сожалению, когда два процесса совместно используют объект 1 МБ, оба их процесса показывают распределение 1 МБ в рабочем наборе, поэтому, если вы сложите все рабочие наборы, объект 1 МБ будет записан дважды, поэтому накопление всех размеров вашего рабочего набора может в крайних случаях, кажется, превышает размер доступного оперативной памяти. см. больше здесь: http://cybernetnews.com/cybernotes-windows-memory-usage-explained/

Частные байты — это объем файлового пространства страницы, который выделен процессу (не обязательно используется) в случае, когда объем памяти, занимаемый частной памятью процесса, полностью выгружен для замены. В большинстве случаев этот процесс не является полностью (или вообще не резидентным) файлом файла страницы, поэтому в личных байтах, по-видимому, имеется «пространство» для дальнейшего распределения. Однако это не так.

Однако закрытые байты относятся только к частной памяти процессов, поэтому это значение может не отражать общие ресурсы (даже если общий ресурс используется только этим процессом в настоящее время).

«Рабочий набор Private» («Частные байты WS» или «Private WS» в проводнике процессов в зависимости от версии), вероятно, является наилучшим показателем для вашего использования. он не касается файла подкачки, поэтому вы получаете точное представление о влиянии процессов на физическую память, и он не учитывает вдвойне общие объекты. общие объекты подсчитываются один раз (только для процесса, который их создал), но это также означает, что с точки зрения одного процесса вы не записываете, что ваш процесс использует общие объекты, созданные другим процессом, поэтому ваш процесс может использовать больше оперативной памяти на другом на машине или в ситуации, когда требовалось создать сам общий объект вместо использования другого экземпляра его процессов. Диспетчер задач Windows использует рабочий набор private в качестве показателя использования памяти.

надеюсь, это поможет

Увеличить рабочий набор процессов (Windows 10) — безопасность Windows

  • Статья
  • 2 минуты на чтение
  • 5 участников

Полезна ли эта страница?

Да Нет

Любая дополнительная обратная связь?

Отзыв будет отправлен в Microsoft: при нажатии кнопки отправки ваш отзыв будет использован для улучшения продуктов и услуг Microsoft.Политика конфиденциальности.

Представлять на рассмотрение

В этой статье

Относится к

Описывает рекомендации, расположение, значения, управление политиками и вопросы безопасности для параметра политики безопасности Увеличить рабочий набор процессов .

Артикул

Этот параметр политики определяет, какие пользователи могут увеличивать или уменьшать размер рабочего набора процесса.Рабочий набор процесса — это набор страниц памяти, которые в данный момент видны процессу в физической оперативной памяти. Эти страницы являются резидентными и доступны для использования приложением без срабатывания ошибки страницы. Минимальный и максимальный размеры рабочего набора влияют на поведение процесса подкачки виртуальной памяти.

Константа: СеИнкреасеворкингсетпривилеже

Возможные значения

  • Пользовательский список учетных записей
  • Не определено

Лучшие практики

  • Сообщите пользователям, что при изменении этого параметра безопасности могут возникнуть проблемы с производительностью.

Местоположение

Конфигурация компьютера\Параметры Windows\Параметры безопасности\Локальные политики\Назначение прав пользователя

Значения по умолчанию

По умолчанию это право есть у обычных пользователей.

В следующей таблице перечислены фактические и действующие значения политики по умолчанию. Значения по умолчанию также перечислены на странице свойств политики.

Тип сервера или GPO Значение по умолчанию
Политика домена по умолчанию Не определено
Политика контроллера домена по умолчанию пользователей
Настройки по умолчанию для автономного сервера пользователей
Действующие параметры контроллера домена по умолчанию пользователей
Действующие параметры рядового сервера по умолчанию пользователей
Действующие параметры клиентского компьютера по умолчанию пользователей

Управление политиками

В этом разделе описаны функции, инструменты и рекомендации, которые помогут вам управлять этой политикой.

Чтобы этот параметр политики вступил в силу, перезагрузка компьютера не требуется.

Любое изменение в назначении прав пользователя для учетной записи вступает в силу при следующем входе владельца учетной записи.

Групповая политика

Параметры применяются в следующем порядке через объект групповой политики (GPO), который перезапишет параметры на локальном компьютере при следующем обновлении групповой политики:

  1. Параметры локальной политики
  2. Параметры политики сайта
  3. Параметры политики домена
  4. Параметры политики OU

Если локальная настройка выделена серым цветом, это означает, что объект групповой политики в настоящее время управляет этой настройкой.

Вопросы безопасности

В этом разделе описывается, как злоумышленник может использовать функцию или ее конфигурацию, как реализовать контрмеру и возможные негативные последствия реализации контрмеры.

Уязвимость

Увеличение размера рабочего набора для процесса уменьшает объем физической памяти, доступной для остальной части системы.

Контрмеры

Повысить осведомленность пользователей о влиянии увеличения рабочего набора процесса и о том, как распознать, что их система неблагоприятно пострадает, если они изменят этот параметр.

Потенциальное воздействие

Нет. Разрешение обычным пользователям увеличивать рабочий набор процесса является конфигурацией по умолчанию.

Talk: Локальность, рабочие наборы и оптимальная производительность системы

Об этом событии

Добавить в календарь

Пожалуйста, присоединяйтесь к Гергенскому институту науки о данных и Департаменту компьютерных наук для  Локальность, рабочие наборы и оптимальная производительность системы , выдающейся лекции с Питером Деннингом, заслуженным профессором и директором Института Цебровски в Военно-морской аспирантуре.

Abstract: Я расскажу о развитии концепции рабочего множества и принципа локальности с момента их рождения в 1965 году с моей точки зрения как участника за последние 55 лет.

Модель рабочего набора для поведения программы выдержала испытание временем в области управления виртуальной памятью более полувека. Он основан на локальности — принципе, открытом при попытках объяснить, почему виртуальная память работает. Локальность — это наблюдаемая тенденция программ использовать различные подмножества своих страниц в течение длительных периодов времени.Рабочий набор был изобретен как способ измерения внутренних наборов локальности процесса, независимого от внешних событий, таких как сбои страниц. Рабочие наборы обеспечивают чистый способ управления памятью, совместно используемой многими активными процессами, и предотвращают катастрофическую нестабильность системы, называемую перегрузкой. Теория рабочего набора дала нам сверхбыстрые алгоритмы для вычисления статистики потребности в памяти и доказала, что управление памятью рабочего набора является оптимальным. Все эти принципы важны при проектировании современных кэшей и кэширующих серверов в Интернете.В конце я прокомментирую несколько мифов о локальности и производительности систем памяти.

Питер Деннинг с раннего возраста увлекался наукой и в подростковом возрасте начал собирать электронные схемы. Его алгебраический компьютер, построенный из частей автомата для игры в пинбол, выиграл научную ярмарку в 1959 году, открыв ему путь в новую область вычислений. Десять лет спустя, в проекте MAC Массачусетского технологического института для защиты докторской диссертации, он взялся за сложную проблему производительности зарождающейся технологии виртуальной памяти.Нестабильность алгоритмов перегрузки и замены угрожала уничтожить эту технологию. Он изобрел модель рабочего набора, которая иммунизировала операционные системы к перегрузке и максимизировала пропускную способность системы. Его решения этих проблем сегодня широко используются в операционных системах от настольных компьютеров до смартфонов. Он широко известен как пионер в области виртуальной памяти и производительности компьютерных систем.

Подробнее читайте на веб-сайте Департамента компьютерных наук : https://www.cs.rochester.edu/dept/seminar/view/dept/2020/11/09/1349/Peter_Denning/Locality_Working_Sets_and_Optimal_System_Performance.html

Ссылка на Zoom: https://rochester.zoom.us/j/3575796041

 

памяти — Когда Windows решает вытащить страницы из рабочего набора?

  1. Нет. Если страница будет считана с диска или если это выделение из режима ядра, сначала проверяется список свободных, а затем обнуленный список. Если она не будет считываться с диска, сначала проверяется обнуленный список, а затем список свободных (если она выделена из списка свободных, страница будет обнулена в режиме реального времени до того, как процесс, вызвавший ошибку, увидит ее).В обоих случаях резервный список идет следующим. Я не верю, что измененный список когда-либо использовался для устранения сбоев страниц (за исключением программных сбоев, которые разрешаются на страницах измененного списка)… поскольку страницы должны быть записаны на диск, прежде чем они могут быть назначены для других целей. … поэтому можно также подождать, пока модифицированный модуль записи страниц выполнит свою обычную работу, после чего страницы появятся в резервном списке.

1а. «Пока у нас есть свободные фреймы страниц, все должно быть либо в списке рабочих наборов, либо в свободном списке.» Нет. Резервный список считается «доступным», но пока эта оперативная память кому-то не понадобится, его страницы используются для двух разных типов кэшей.

Второй вопрос (дурацкое автоматическое форматирование списка постоянно начинается с «1»): Это довольно много. Вы удалили файл подкачки?

Третий вопрос: Во-первых, имейте в виду, что рабочий набор существует для каждого процесса, а не только для одного. И у каждого есть свой «лимит». Когда ограничения применяются (это не так, если имеется много свободной оперативной памяти), процесс должен отказываться от страницы для каждой новой страницы, в которой он ошибается.Существует также процесс восстановления рабочего набора, который пытается сократить процессы, которые долго простаивают.

Когда процесс теряет страницу, он попадает в список измененных, если к нему был применен операнд в стиле «модифицировать», когда он был в рабочем наборе, или в резервный список, если нет. Если процесс позже выдает ошибку на странице до того, как она будет назначена какому-либо другому использованию или процессу, ее можно вернуть обратно в рабочий набор процесса, не обращаясь за ней к диску. (Это типичный пример «мягкой» ошибки страницы.) Таким образом, эти списки образуют своего рода общесистемное расширение для рабочих наборов всех процессов.Но все в списке ожидания по-прежнему считается частью «Доступной» памяти, потому что она может быть немедленно использована любым другим процессом — примечание должно быть записано на диск.

Начиная с Vista, существует новая концепция, называемая приоритетом памяти. Страницы в резервном списке с низким приоритетом могут быть переназначены для использования новым упреждающим файловым кэшем SuperFetch. Но это не требует «доступной» оперативной памяти, потому что они все еще находятся в резервном списке. (Старый реактивный кеш все еще там; раньше он был частью рабочего набора системы; начиная с Windows 7 у него есть свой собственный.)

Это только верхушка айсберга. Глава Mm Windows Internals состоит из 200 страниц, чего достаточно для небольшой книги. Но если вы действительно хотите понять этот материал, замены на самом деле нет.

Windows 10: сжатие памяти — TweakHound

Windows 10: сжатие памяти

После объявления о функции сжатия памяти мы получили множество запросов от инсайдеров с просьбой предоставить дополнительную информацию.В этой статье мы попытаемся подробно рассмотреть внутреннюю работу диспетчера памяти и встроенного в него механизма сжатия памяти.​​

Одной из основных целей любой операционной системы является эффективное управление и совместное использование ресурсов. То, насколько хорошо операционная система справляется с конкурирующими требованиями к памяти, особенно важно, потому что это влияет на восприятие пользователем скорости отклика системы. операций чтения и записи на диск (файл подкачки) и, следовательно, повышает скорость отклика.Сжимая память, мы уменьшаем объем памяти, используемой каждым процессом, что позволяет операционной системе одновременно поддерживать больше приложений в физической памяти, прежде чем активировать традиционную подкачку.​ 

считанные с диска уже сжаты примерно до 40 процентов от исходного размера. Это сжатие повышает производительность других несвязанных операций в системе за счет уменьшения основного источника помех нагрузки ввода-вывода.Конечным результатом является более быстрое и быстрое взаимодействие с улучшенной производительностью и стабильностью запуска приложений.

Прежде чем подробно объяснять изменения в Windows 10, я опишу некоторые фундаментальные концепции управления памятью Windows и дам обзор того, как это выполнялось до внедрения сжатия.

Первая концепция — это рабочий набор, который представляет собой активно используемую физическую память процесса. Частный рабочий набор представляет собой физическую память, которая уникальна для процесса.Процессы также касаются других страниц физической памяти, которые являются «общими», на которые могут ссылаться несколько процессов. Когда вы смотрите на представление «Процессы» в диспетчере задач, память для конкретного процесса на самом деле является его текущим частным рабочим набором. Обратите внимание: для простоты, когда я говорю о «рабочем наборе» в этом посте, я имею в виду «частный рабочий набор».

Некоторое подмножество страниц рабочего набора процесса, скорее всего, будет использоваться нечасто, а поскольку память является ограниченным ресурсом, который необходимо использовать эффективно, эти страницы необходимо освободить и сделать доступными для использования другими процессами.Когда MM решает, что страница неактивна достаточно долго, она помещает ее в список измененных. Асинхронный процесс записывает страницы из измененного списка в файл подкачки на диске, а затем — в памяти — перемещает их из измененного списка в резервный список. Эта запись происходит так, что если память освобождается из резервного списка другим процессом, но исходный процесс ищет свою страницу, данные могут быть извлечены из файла подкачки.

Однако страницы в резервном списке еще не были восстановлены, поэтому они сохраняют свои данные до тех пор, пока MM не переназначит их для рабочего набора другого процесса.Они могут быть повторно использованы приложением, которому они ранее принадлежали, если это приложение запрашивает страницу до того, как она будет восстановлена. Это называется мягкой ошибкой. Но если страница была переназначена, и исходный процесс запрашивает эту страницу у MM, возникает серьезная ошибка. Исходный процесс теперь запрашивает память, которая была занята другим процессом, и ОС должна выполнить операцию чтения с диска, чтобы получить ее.

Как объяснялось ранее, MM при нехватке памяти определяет, какие страницы следует переместить в измененный список.Это называется обрезкой. Но в Windows 8 добавлена ​​возможность полной замены приложений универсальной платформы Windows (UWP), т. е. на уровне приложений, а не на уровне страниц. Это делается потому, что приложения UWP приостанавливаются, когда не находятся на переднем плане, что означает, что они не будут работать, пока пользователь не переключит их обратно. Ни одна страница не будет затронута до тех пор, пока приложение не будет возвращено полностью, поэтому безопасно заменить все приложение целиком. Дисковый ввод-вывод, необходимый для возврата приложения, представляет собой полностью последовательное чтение, которое значительно быстрее, чем случайное чтение.Дополнительные сведения об обмене приложениями UWP в Windows 8 MM см. в этой записи в блоге Билла Карагуниса.

Windows 10 представляет слой между файлом подкачки и обычной активностью подкачки, который позволяет сжимать все страницы, перемещенные в измененный список. Это означает, что когда MM чувствует нехватку памяти, он будет сжимать неиспользуемые страницы вместо того, чтобы записывать их на диск. MM теперь выполняет дисковый ввод-вывод только тогда, когда сжатия недостаточно для уменьшения нагрузки на память. При использовании этой стратегии требуется меньше дисковых операций, поскольку благодаря сжатию в памяти может храниться больше данных, чем раньше.

Это достигается с помощью концепции, называемой хранилищем сжатия, которое представляет собой набор сжатых страниц в памяти. Существует одно системное хранилище для устаревших настольных приложений Windows или любого другого использования памяти приложениями, отличными от UWP, а затем одно хранилище для каждого приложения среды выполнения Windows (чтобы обеспечить возможность обрезки и замены соответственно). Вместо записи страниц измененного списка в файл подкачки, ММ сжимает их и помещает в соответствующее хранилище.

Хранилища находятся в рабочем наборе системного процесса.Обратите внимание, что на диаграмме выше мы отобразили системный рабочий набор отдельно от других рабочих наборов по соображениям форматирования, но системный рабочий набор — это рабочий набор, как и любой другой. Хотя на первый взгляд это может показаться нелогичным, поскольку системный процесс хранит хранилища в памяти, его рабочий набор увеличивается именно тогда, когда память становится доступной для других процессов. Это видно в диспетчере задач.

Сначала обратите внимание на объем памяти, используемый процессом System:

Затем запустите и приостановите некоторые приложения:

И рабочий набор процесса System будет расти:

Каждое хранилище управляет фрагментацией путем сжатия себя, когда это необходимо для обеспечения хорошей степени сжатия.На практике сжатая память занимает около 40% несжатого объема, и в результате на типичном устройстве с типичной рабочей нагрузкой Windows 10 записывает страницы на диск лишь на 50% чаще, чем это делали предыдущие версии ОС. Это сократит время, затрачиваемое на ожидание операций ввода-вывода на всех устройствах, но также повысит ожидаемый срок службы систем с жесткими дисками на основе флэш-памяти.

Несмотря на то, что сжатие предоставляет ОС больше места в памяти для данной загрузки приложения, постраничная подкачка на диск все же может быть необходима.В Windows 10 это работает путем перемещения страниц из хранилищ в системном процессе в измененный список. Если в измененный список попадают страницы из системных хранилищ процессов, ММ знает, что они уже сжаты и готовы к записи в файл подкачки. Записей на диск будет меньше, поскольку страницы обязательно сжаты, то есть MM будет записывать на диск только те страницы, которые были сжаты и сохранены в хранилище в системном процессе.

Итак, теперь давайте поговорим о том, как процесс возвращает свои данные либо из хранилища сжатия, либо из файла подкачки на диске.В первом случае, когда происходит сбой процесса на странице, которая в данный момент находится в сжатом хранилище, MM просто распаковывает страницу и помещает ее обратно в рабочий набор запрашивающего процесса — ошибка мягкого сжатия. Но в последнем случае ММ пробует первое и обнаруживает, что сжатых данных для страницы нет в памяти. Затем системный рабочий набор обрабатывает сжатые данные для страницы

, и MM считывает их обратно с диска. Далее следуют декомпрессия и добавление в рабочий набор сбойного процесса.

Распаковка — это операция с высокой степенью параллелизма, поэтому Windows может быть эффективна при одновременном перемещении нескольких страниц. Из-за этого подкачка приложений UWP (в отличие от обрезки) работает особенно хорошо. Но дело не только в распаковке: Windows сочетает в себе эту возможность параллелизма с последовательным чтением, разработанным в процедуре подкачки, чтобы чрезвычайно быстро считывать страницы в память; он читает блок за раз и, ожидая завершения следующей операции ввода-вывода, одновременно распаковывает только что прочитанные данные, используя несколько процессоров.Там, где раньше платформа могла чувствовать себя вялой из-за скорости передачи своего диска, под управлением Windows 10 то же оборудование кажется гораздо более отзывчивым.

Таким образом, сжатие памяти позволяет Windows 10 лучше использовать доступную память во всех системах за счет сокращения использования физической памяти, что приводит к меньшему количеству операций ввода-вывода файла подкачки и снижению зависимости от диска. Кроме того, это повышает скорость записи на диск и чтения с диска, когда ММ определяет, что пейджинг должен быть активирован. В целом, мы ожидаем, что пользователи получат улучшенную общую отзывчивость и удобство использования на всех устройствах под управлением Windows 10.

Спасибо,

Итан Кригер — руководитель программы в группе базовой платформы. Я работаю в Windows (и Microsoft) уже два года и работаю над аппаратными аспектами ядра, такими как ACPI и PCIE.​​

 

Производительность необходима для вашего успеха, что делает ее основой для нашего успеха. Чтобы браузер не замедлял работу, мы всегда помним о производительности, продолжая улучшать Microsoft Edge.Однако в тех случаях, когда ваш браузер не работает должным образом, мы хотим помочь вам понять, как Microsoft Edge использует ресурсы на вашем устройстве, и когда использование ресурсов Microsoft Edge необычно велико, чтобы вы могли вернуться к тому, что хотите. сделано.

Как Microsoft Edge думает об использовании памяти

Использование памяти браузером можно рассматривать по-разному, и оно зависит от нескольких факторов. Здесь, для Microsoft Edge, метрики памяти, которые нас больше всего интересуют, — это фиксация и частный рабочий набор.

Фиксация — это общее количество выделений частной памяти, сделанных процессом. Фиксация каждого процесса является отдельной или приватной для процесса. Эти выделения могут находиться в оперативной памяти (ОЗУ) или в файле подкачки на жестком диске. Файл подкачки — это зарезервированная часть вашего жесткого диска, которая используется в качестве расширения оперативной памяти для данных, которые в последнее время не использовались. В ОЗУ фиксация находится либо в частном рабочем наборе, либо в списках, которые ОС использует для управления памятью, например в измененном или резервном списке.Фиксацию можно увидеть либо в диспетчере задач браузера, либо в диспетчере задач Windows.

  • Диспетчер задач браузера — в столбце «Память» показан размер фиксации для процесса (рис. 1).
  • Диспетчер задач Windows — в столбце «Размер фиксации» показан размер фиксации для процесса. Этот столбец можно добавить на вкладку «Подробности» (рис. 3).

Частный рабочий набор  – это объем выделенной процессом частной памяти, которая в данный момент находится в ОЗУ и отображается в процесс.Эту информацию можно увидеть только в диспетчере задач Windows.

  • Диспетчер задач Windows — в столбце «Память» на вкладке «Процессы» или «Сведения» отображается частный рабочий набор для процесса (рис. 3).

Факторы, влияющие на использование памяти

При исследовании использования памяти Microsoft Edge мы обычно хотим использовать фиксацию, так как это показатель, находящийся под контролем браузера. Общий размер фиксации определяется многими факторами, среди которых наиболее важными являются количество вкладок, расширений и рекламы, содержание веб-страницы, разрешение экрана и количество окон браузера.

  • Количество вкладок, объявлений и расширений . Как правило, каждая вкладка, объявление и расширение — это отдельный процесс. Чем больше открытых вкладок/объявлений и включенных расширений, тем больше процессов и тем больше памяти требуется, поскольку коммит каждого процесса является отдельным или частным для процесса.
  • Контент — Использование памяти для вкладки, объявления или расширения зависит от контента, при этом такие вещи, как изображения, видео и аудио, используют больше, а часто и значительно больше памяти, чем текст.
  • Разрешение экрана и размер окна — чем выше разрешение экрана или больше окно, тем больше отображаемого контента и объем памяти, необходимый для отображения контента, увеличивается. Это больше всего повлияет на процесс графического процессора, а также может повлиять на размер памяти для изображений и видео на вкладках.
  • Количество окон браузера . Отдельные окна приводят к дополнительному выделению памяти для отображения содержимого, поскольку одновременно отображается больше окон.Это больше всего повлияет на процесс GPU.

Зафиксировать

Когда мы начинаем рассматривать размер фиксации различных процессов, полезно понять, как перечисленные выше факторы влияют на размер фиксации для каждого процесса и как размер может варьироваться. Ниже вы найдете значения, обычно представляющие верхнюю границу размера фиксации каждого процесса, определяемую диагностическими данными, отправленными в Microsoft Edge, а также факторы, влияющие на размер фиксации каждого процесса.

  • Процесс браузера — этот процесс управляет вкладками и реализует общую инфраструктуру.Коммит для этого процесса обычно не превышает 400 МБ. Большее количество вкладок подтолкнет фиксацию этого процесса к более высоким значениям.
  • Процесс рендеринга — коммит для каждого из этих процессов обычно не превышает 500 МБ. Сложный контент, который воспроизводит видео или имеет большие прокручиваемые области, такие как новостные ленты социальных сетей, будет иметь фиксацию в верхней части диапазона.
  • Процесс подкадра — это также процессы рендеринга, но они не предназначены для основного контента и чаще всего используются для таких вещей, как реклама.Коммит для каждого из этих процессов обычно не превышает 75 МБ. Однако сложные объявления, которые воспроизводят видео или демонстрируют слайд-шоу, иногда могут потреблять больше.
  • Процесс графического процессора — коммит для этого процесса обычно не превышает 1,75 ГБ. Большее количество вкладок, окон браузера и более высокое разрешение экрана будут иметь коммиты с более высокими значениями.
  • Служебный процесс — коммит для каждого из этих процессов обычно не превышает 30 МБ.
  • Процессы расширения и процессы подключаемых модулей — коммит для каждого из этих процессов обычно не превышает 150 МБ.

Лучший способ отобразить фиксацию процессов браузера — через Диспетчер задач браузера, как показано на рис. 1. Этот метод дает нам наиболее подробную информацию о том, какие вкладки и расширения используются в данный момент, а также контекст для принятия обоснованных решений   о фиксации использование. Если вы хотите увидеть размер фиксации каждого из ваших процессов, выполните следующие действия:

  1. Открыть диспетчер задач браузера
    1. Щелкните правой кнопкой мыши строку заголовка окна браузера и выберите «Диспетчер задач браузера» или нажмите Shift-Esc после того, как вы щелкнули окно браузера
  2. Посмотрите столбец «Память» для каждого процесса
  3. Если число в столбце «Память» превышает один из ожидаемых диапазонов, перечисленных выше, отправьте отзыв через Microsoft Edge
  4. .
Рисунок 1. Браузерный диспетчер задач

Частный рабочий набор

Размер вашего личного рабочего набора зависит от многих факторов, включая размер ОЗУ, другие процессы, присутствующие в системе, какой процесс доступен для взаимодействия с клавиатурой или мышью, возраст процесса и какие фоновые процессы воспроизводят аудио/видео.Частный рабочий набор никогда не будет больше, чем фиксация процесса. Фиксация для процесса будет распространяться в четырех местах: частный рабочий набор, модифицированный, резервный и файл подкачки.

Как правило, процессы браузера, которые имеют более 80 % фиксации   в частном рабочем наборе и не являются активной вкладкой (т. е. вкладкой, доступной для взаимодействия с клавиатурой или мышью), будут считаться чрезмерными, если только ваше устройство имеет большой объем оперативной памяти (64 ГБ ОЗУ и более).Фоновые вкладки будут иметь различный процент их фиксации в их частном рабочем наборе. Сколько зависит от размера системной оперативной памяти и частного рабочего набора других процессов в системе. Вкладки, которые находятся в фоновом режиме в течение длительного периода времени (несколько часов или более) или находятся в спящем режиме, будут иметь лишь небольшой процент своей фиксации в частном рабочем наборе.

Однако частные рабочие наборы могут оставаться высокими (> 50 % фиксации) в течение всего времени существования процесса в системах со значительным объемом доступной памяти (64 ГБ ОЗУ или более) в ждущем и свободном режимах, как показано в ресурсе Windows. Монитор (рис. 2).Вы можете открыть монитор ресурсов Windows, введя «Монитор ресурсов» в поле поиска Windows в левом нижнем углу рабочего стола.

Рис. 2. Монитор ресурсов Windows

Лучший способ отобразить личный рабочий набор процессов браузера — через Диспетчер задач Windows, как показано на рис. 2. Чтобы отобразить личный рабочий набор, выполните следующие действия:

  1. Откройте Диспетчер задач Windows (нажмите Ctrl-Shift-Esc или введите «Диспетчер задач» в поле поиска Windows в левом нижнем углу рабочего стола.)
  2. Нажмите на вкладку «Подробности» в диспетчере задач Windows
  3. Убедитесь, что у вас есть необходимые столбцы, отображающие
    1. Щелкните правой кнопкой мыши заголовок, содержащий «Имя», «Статус», «Имя пользователя», «ЦП» и т. д.
    2. Нажмите «Выбрать столбцы»
    3. Убедитесь, что у вас установлены галочки рядом с «PID», «Размер фиксации» и «Память (частный рабочий набор)»
    4. Нажмите «ОК»
  4. Откройте диспетчер задач браузера (щелкните правой кнопкой мыши строку заголовка окна браузера и выберите «Диспетчер задач браузера» или нажмите Shift-Esc после того, как вы щелкнули окно браузера)
  5. Для интересующего вас процесса посмотрите значение в столбце «Идентификатор процесса»
  6. .
  7. Вернитесь в диспетчер задач Windows и в столбце «PID» найдите значение, соответствующее значению в диспетчере задач браузера.
  8. Глядя на эту строку, сравните значения в столбцах «Память (частный рабочий набор)» и «Размер фиксации»
  9. . Если частный рабочий набор процесса превышает 80 % вашей фиксации, отправьте отзыв через Microsoft.
    1. Примечание: Убедитесь, что процесс, на который вы смотрите, не является активной вкладкой, вкладкой, доступной для взаимодействия с клавиатурой или мышью, и убедитесь, что в вашей системе нет 64 ГБ или более оперативной памяти
Рисунок 3: Диспетчер задач Windows

Прислушиваемся к вашим отзывам

Мы понимаем, что люди полагаются на свой браузер больше, чем когда-либо прежде, и мы хотим, чтобы просмотр веб-страниц был легким.Если у вас возникла проблема с Microsoft Edge, отправьте нам отзыв через Microsoft Edge, нажав Alt+Shift+I после того, как вы щелкнули окно браузера, или перейдя в Настройки и т. д.… > Справка и отзывы > Отправить отзыв.

В своем отзыве предоставьте как можно больше подробностей. Пожалуйста, включите информацию, такую ​​как шаги для воспроизведения проблемы, URL-адрес страницы, которую вы посетили, диагностические данные, снимок экрана, ваш адрес электронной почты, чтобы при необходимости мы могли ответить на ваш отзыв и запросить дополнительную информацию, и, наконец, включите фразу «EdgeMemoryBlogPost» в вашем описании, чтобы помочь нам упорядочить наши отзывы.Предоставление этой дополнительной информации поможет нам ответить на ваш отзыв.

— Эллисон Пастьюка, руководитель программы, Microsoft Edge
— Джо Лафлин, главный инженер-программист, Microsoft Edge

Сжатие памяти в Windows 10 Threshold 2

В этой статье «Спросите администратора » я кратко расскажу об изменениях в управлении памятью в Windows 10 Threshold 2, выпуск которой запланирован на ноябрь.

Большинство технических пользователей Windows знакомы с концепцией файла подкачки, которая позволяет Windows выгружать память на диск, так что в условиях нехватки памяти страницы могут быть удалены из физической памяти и загружены обратно в ОЗУ с диска позднее. время.Хотя это предотвращает нехватку памяти в Windows, загрузка страниц в ОЗУ может привести к перегрузке диска, что, в свою очередь, отрицательно скажется на производительности.

В Windows 10 Threshold 2 или сборке 10525 диспетчер памяти сжимает редко используемые страницы, как правило, на 40 процентов, сохраняя их в новом хранилище сжатия, которое хранится в физической оперативной памяти. Если диспетчер памяти указывает, что страницы должны быть выгружены на диск, они уже значительно меньше по размеру, что снижает объем дисковых операций ввода-вывода, необходимых во время операций чтения/записи.

Сжатие памяти в Windows 10

До сборки 10525, когда диспетчер памяти решает, что страница не использовалась какое-то время, она записывается в список измененных страниц  и затем записывается на диск перед перемещением в список резервных страниц . Резервный список кэширует страницы, которые могут быть взяты и использованы другими приложениями, но если исходному процессу требуется страница немедленно, ее можно быстро восстановить — иначе это называется программной ошибкой .Жесткие сбои возникают, когда страницу необходимо извлечь с диска, потому что она была удалена из ОЗУ, что может дорого сказаться на общей производительности и скорости отклика системы.

Сжатие памяти в Windows 10 (Изображение предоставлено Microsoft)

В сборке Windows 10 10525 добавлен дополнительный этап к описанному выше процессу. Вместо записи на диск обрезанные страницы, принадлежащие рабочему набору, перемещаются в измененный список, сжимаются и затем перемещаются в системный рабочий набор. Только когда объем физической оперативной памяти становится критически низким, диспетчер памяти записывает страницы на диск.

Страницы хранятся в хранилищах сжатия, для которых существует одно хранилище для всех устаревших классических приложений и других процессов, отличных от UWP, и по одному для каждого приложения универсальной платформы Windows (UWP). Поскольку хранилища сжатия хранятся в рабочем наборе системы , размер рабочего набора системы увеличивается, поскольку приложения UWP приостанавливаются.

Когда приложению требуется выгруженная страница памяти, если она хранится в сжатом хранилище, диспетчер памяти распаковывает ее и возвращает — это известно как ошибка мягкого сжатия .В противном случае возникает серьезная ошибка, и страница считывается с диска и распаковывается.

Приложения универсальной платформы Windows

Приложения UWP заменяются полностью, а не обрезаются, как устаревшие системные приложения и другие процессы. Это связано с тем, что когда приложения UWP приостанавливаются, они не используются, а используемые страницы можно полностью безопасно заменить. Когда приложение UWP возобновляется, сочетание последовательного чтения страниц с диска обратно в физическую память и параллельной распаковки с использованием нескольких ядер ЦП приводит к чрезвычайно быстрой и эффективной работе.

Улучшена производительность для Windows 10

Возможно, вы читаете это и думаете, что эти изменения принесут пользу только системам с малым объемом памяти. Хотя устройства с ограниченным объемом ОЗУ действительно получат наибольшую выгоду, предстоящие изменения в диспетчере памяти принесут пользу всем системам под управлением Windows 10 за счет сокращения использования ОЗУ и операций ввода-вывода с файлом подкачки, что, в свою очередь, улучшит время отклика системы и срок службы твердотельных дисков.

Частная/виртуальная память и рабочий набор

Учебники по C# — Примеры учебных пособий Херонга

∟ Использование памяти процессами

∟ Частная/виртуальная память и рабочий набор

В этом разделе описываются 3 основных показателя использования памяти запущенного процесса: собственная память, виртуальная память и рабочий набор.

Из предыдущего урока мы узнали, как получить статистику использования памяти с помощью методы и свойства класса System.Diagnostics.Process. Теперь давайте попробуем понять первые 3 числа использования памяти:

«Частная память», возвращаемая свойством «PrivateMemorySize64», представляющая объем оперативной памяти, выделенной для процесса в частном порядке. В общем, «Личная память» не включать любую память, занятую общими файлами DLL, используемыми процессом.

«Виртуальная память», возвращаемая свойством «VirtualMemorySize64», представляющая общее виртуальное адресное пространство процесса.

«Рабочий набор», возвращаемый свойством «WorkingSet64», представляющий часть «виртуальной памяти», которая в настоящее время находится в ОЗУ и может быть ссылкой без ошибки страницы.

Снова запустите файл MemoryUsage.exe, созданный из предыдущего примера, ты увидишь:

Текущий процесс: System.Diagnostics.Process (MemoryUsage)
Частная память: 8744960
Виртуальная память: 89157632
Рабочий набор: 5599232
Выгружаемая память: 8744960
Выгружаемая системная память: 100228
Невыгружаемая системная память: 3988
 

Теперь мы знаем, как читать эти числа:

  • Частная память: 8744960 — Windows выделила 8 744 960 байт частной памяти для процесса MemoryUsage.
  • Виртуальная память: 89157632 — MemoryUsage имеет 89 157 632 байт адресуемого виртуального пространства.
  • Рабочий набор: 5599232 — в настоящее время Windows хранит 5 599 232 байта в ОЗУ для запуска. Использование памяти.

Содержание

 Об этой книге

 Введение в C# (C Sharp)

 Тип данных и переменные

 Логические выражения и условные операторы

Массивы и операторы циклов

 Особенности типов данных

 Типы данных с плавающей запятой

 Передача параметров в методы

 Класс среды выполнения

Visual C# 2010, экспресс-выпуск

 Особенности класса

 Компилятор C# и промежуточный язык

 Компиляция файлов исходного кода C#

 MSBuild — Microsoft Build Engine

►Использование памяти процессами

 Использование класса «Процесс» для отображения использования памяти

►Частная/виртуальная память и рабочий набор

 Отпечатки личных и общих воспоминаний

 Верхний предел виртуальной памяти

 Отчет о памяти из диспетчера задач Windows

 Отчет о памяти из Performance Console

 Многопоточность в C#

 Асинхронная функция из C# 5

 Система.

Добавить комментарий

Ваш адрес email не будет опубликован.