Поделиться через


ОЗУ, виртуальная память, файл страницы и управление памятью в Windows

Исходный номер базы знаний: 2160852

Итоги

В этой статье содержатся основные сведения о реализации виртуальной памяти в 32-разрядных версиях Windows.

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

Виртуальная память всегда используется, даже если память, требуемая всеми выполняемыми процессами, не превышает объем ОЗУ, установленного в системе.

Процессы и адресные пространства

Все процессы (например, исполняемые файлы приложений), работающие в 32-разрядных версиях Windows, назначаются адреса виртуальной памяти ( виртуальное адресное пространство), от 0 до 4 294 967 295 (2*32-1 = 4 ГБ), независимо от того, сколько ОЗУ устанавливается на компьютере.

В конфигурации Windows по умолчанию 2 гигабайта (ГБ) этого виртуального адресного пространства предназначены для частного использования каждого процесса, а остальные 2 ГБ совместно используются для всех процессов и операционной системы. Как правило, приложения (например, Блокнот, Word, Excel и Acrobat Reader) используют только часть 2 ГБ частного адресного пространства. Операционная система назначает кадры страниц ОЗУ только тем страницам виртуальной памяти, которые используются.

Расширение физического адреса (PAE) — это функция 32-разрядной архитектуры Intel, которая расширяет адрес физической памяти (ОЗУ) до 36 бит. PAE не изменяет размер виртуального адресного пространства (который остается в 4 ГБ), но только объем фактической ОЗУ, который может быть решен процессором.

Преобразование между 32-разрядным адресом виртуальной памяти, используемым кодом, выполняющимся в процессе, и 36-разрядный адрес ОЗУ обрабатывается автоматически и прозрачно оборудованием компьютера в соответствии с таблицами перевода, которые поддерживаются операционной системой. Любая страница виртуальной памяти (32-разрядный адрес) может быть связана с любой физической страницей ОЗУ (36-разрядный адрес).

В следующем списке описывается, сколько ОЗУ поддерживает различные версии и выпуски Windows (по состоянию на май 2010 г.):

Версия Windows ОЗУ
Windows NT 4.0 4 ГБ
Windows 2000 Professional 4 ГБ
Windows 2000 Standard Server 4 ГБ
Расширенный сервер Windows 2000 8 ГБ
Сервер Центра обработки данных Windows 2000 32 Гб
Windows XP Professional 4 ГБ
Windows Server 2003 Web Edition 2 ГБ
Выпуск Standard Windows Server 2003 4 ГБ
Windows Server 2003 выпуск Enterprise 32 Гб
Windows Server 2003 Datacenter Edition 64 ГБ
Windows Vista 4 ГБ
Windows Server 2008 Standard 4 ГБ
Windows Server 2008 Enterprise 64 ГБ
Windows Server 2008 Datacenter 64 ГБ
Windows 7 4 ГБ

Файл подкачки

ОЗУ — это ограниченный ресурс, в то время как для большинства практических целей виртуальная память является неограниченной. Существует множество процессов, и каждый процесс имеет собственный 2 ГБ частного виртуального адресного пространства. Когда память, используемая всеми существующими процессами, превышает доступную ОЗУ, операционная система перемещает страницы (4 КБ) одного или нескольких виртуальных адресных пространств на жесткий диск компьютера. Это освобождает кадр ОЗУ для других использования. В системах Windows эти страницы выстраиваются в одном или нескольких файлах (Pagefile.sys файлах) в корне секции. В каждом разделе диска может быть один такой файл. Расположение и размер файла страницы настроены в системных свойствах (нажмите кнопку "Дополнительно", нажмите кнопку "Производительность", а затем нажмите кнопку "Параметры").

Пользователи часто спрашивают , насколько большой размер я должен сделать файл страницы? Нет единого ответа на этот вопрос, так как он зависит от объема установленной ОЗУ и объема виртуальной памяти, необходимой рабочей нагрузке. Если нет других сведений, типичные рекомендации по 1,5 раза установленной ОЗУ являются хорошей отправной точкой. В серверных системах обычно требуется достаточно ОЗУ, чтобы не было нехватки и поэтому файл страницы не используется. В этих системах он может не служить полезной целью для поддержания большого файла страницы. С другой стороны, если дисковое пространство достаточно, поддержание большого файла страницы (например, 1,5 раза установленной ОЗУ) не вызывает проблемы, и это также устраняет необходимость беспокоиться о том, насколько большой размер сделать его.

Производительность, ограничения архитектуры и ОЗУ

В любой компьютерной системе по мере увеличения нагрузки (количество пользователей, объем работы), производительность уменьшается, но нелинейно. Любое увеличение нагрузки или спроса за пределами определенной точки приводит к значительному снижению производительности. Это означает, что некоторые ресурсы имеют критически короткий уровень и становятся узким местом.

В какой-то момент ресурс, который находится в нехватке, нельзя увеличить. Это означает, что достигнуто ограничение архитектуры. Некоторые часто сообщаемые ограничения архитектуры в Windows включают следующие:

  • 2 ГБ общего виртуального адресного пространства для системы (ядра)
  • 2 ГБ частного виртуального адресного пространства для каждого процесса (режим пользователя)
  • 660 МБ системного хранилища PTE (Windows Server 2003 и более ранних версий)
  • 470 МБ хранилища пула страниц (Windows Server 2003 и более ранних версий)
  • 256 МБ непагрегированного хранилища пула (Windows Server 2003 и более ранних версий)

Это относится к Windows Server 2003, но это также может применяться к Windows XP и Windows 2000. Однако Windows Vista, Windows Server 2008 и Windows 7 не используют эти ограничения архитектуры. Ограничения памяти пользователя и ядра (число 1 и 2 здесь) одинаковы, но ресурсы ядра, такие как PTEs и различные пулы памяти, являются динамическими. Эта новая функция включает как страницы, так и непагрегированную память. Это также позволяет PTEs и пулу сеансов увеличиваться за пределы, которые были рассмотрены ранее, вплоть до точки, когда весь ядро исчерпано.

Часто найденные и кавычки операторы, такие как следующие:

С сервером терминала 2 ГБ общего адресного пространства будут полностью использоваться до использования 4 ГБ ОЗУ.

Это может быть верно в некоторых случаях. Однако необходимо отслеживать систему, чтобы узнать, применяются ли они к конкретной системе или нет. В некоторых случаях эти инструкции являются выводами из определенных сред Windows NT 4.0 или Windows 2000 и не обязательно применяются к Windows Server 2003. Значительные изменения были внесены в Windows Server 2003, чтобы снизить вероятность достижения этих ограничений архитектуры на практике. Например, некоторые процессы, которые находились в ядре, были перемещены в процессы, отличные от ядра, чтобы уменьшить память, используемую в общем виртуальном адресном пространстве.

Мониторинг использования ОЗУ и виртуальной памяти

Монитор производительности — это принцип средства мониторинга производительности системы и определения расположения узких мест. Чтобы начать Монитор производительности, нажмите кнопку "Пуск", щелкните панель управления, выберите "Администрирование" и дважды щелкните Монитор производительности. Вот сводка некоторых важных счетчиков и то, что они говорят вам:

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

    В этом разделе показано, сколько байтов было выделено процессами и к которым операционная система фиксирует кадр страницы ОЗУ или слот страницы в файле страницы (или, возможно, оба). Так как зафиксированные байты растут больше доступной ОЗУ, разбиение по страницам увеличится, а используемый размер файла страниц также увеличится. В какой-то момент действие разбиения по страницам начинает значительно влиять на производительность.

  • Процесс, рабочий набор, _Total. Этот счетчик является мерой виртуальной памяти в активном использовании.

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

  • Paging File, %pagefile in use: этот счетчик является мерой фактического использования файла страницы.

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

  • Память, Pages/Sec: этот счетчик является одним из самых неправильных мер.

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

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

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

  • Память, кэш байты, память, непагированные байты пула, память, страницы пула байт, память, общее количество байтов системного кода, память, общее количество байтов системного драйвера:

    Сумма этих счетчиков — это мера того, сколько из 2 ГБ общей части виртуального адресного пространства 4 ГБ фактически используется. Используйте их, чтобы определить, достигает ли ваша система одного из ограничений архитектуры, которые обсуждались ранее.

  • Память, доступные MBytes: этот счетчик измеряет, сколько ОЗУ доступно для удовлетворения потребностей виртуальной памяти (новых выделений или восстановления страницы из файла страницы).

    Если ОЗУ недостаточно (например, зафиксированные байты больше установленной ОЗУ), операционная система попытается сохранить определенную часть установленной оперативной памяти для немедленного использования путем копирования страниц виртуальной памяти, которые не используются в файл страниц. Таким образом, этот счетчик не достигнет нуля и не обязательно является хорошим показателем того, не хватает ли вашей системы ОЗУ.

Ссылки

Расширения адресного окна