ОЗУ, виртуальная память, файл подкачки и управление памятью в Windows

Переводы статьи Переводы статьи
Код статьи: 2160852 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Аннотация

В этой статье представлены общие сведения о реализации виртуальной памяти в 32-разрядных версиях Windows. Эта информация относится к Windows 2000, Windows XP, Windows Server 2003, Windows Vista и Windows Server 2008. (Так как ОС Windows Server 2008 R2 доступна только в 64-разрядной версии, эти сведения к ней не применимы.)

Дополнительная информация

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

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

Расширенную версию этой статьи можно найти в блоге о Windows Брюса Сандерсона (Bruce Sanderson). См. эту статью на следующем сайте:

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

Всем процессам (например, исполняемым файлам приложений), работающим в 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 ГБ), а только объем фактической оперативной памяти, которая доступна процессору. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:
268363 Расширения физических адресов Intel (PAE) в Windows 2000
Преобразование 32-разрядных адресов виртуальной памяти, используемое в коде, выполняемом в процессе, в 36-разрядный адрес ОЗУ осуществляется автоматически и прозрачно оборудованием компьютера в соответствии с таблицами преобразования, которые создаются операционной системой. Любая страница виртуальной памяти (32-разрядный адрес) может быть связана с любой страницей физической памяти (36-разрядный адрес).

В следующем списке показано, какой объем ОЗУ поддерживают различные версии и выпуски Windows (с мая 2010 г.):
Свернуть эту таблицуРазвернуть эту таблицу
Windows NT 4.04 ГБ
Windows 2000 Professional4 ГБ
Windows 2000 Standard Server4 ГБ
Windows 2000 Advanced Server8 ГБ
Windows 2000 Datacenter Server32 ГБ
Windows XP Professional;4 ГБ
Выпуск Windows Server 2003 Web2 ГБ
Выпуск Windows Server 2003 Standard4 ГБ
Выпуск Windows Server 2003 Enterprise32 ГБ
Выпуск Windows Server 2003 Datacenter64 ГБ
Windows Vista4 ГБ
Windows Server 2008 Standard4 ГБ
Windows Server 2008 Enterprise64 ГБ
Windows Server 2008 Datacenter64 ГБ
Windows 74 ГБ

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

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

Пользователи часто спрашивают, какой максимальный размер следует задать для файла подкачки. Единственного правильного ответа на этот вопрос нет, так как размер зависит от объема ОЗУ и требуемого объема виртуальной памяти. Если другие сведения недоступны, типичный рекомендуемый размер файла подкачки равен объему ОЗУ x 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 в списке) такие же, но ресурсы ядра, такие как PTE и различные пулы памяти, являются динамическими. Эта новая функциональность позволяет использовать как выгружаемую, так и невыгружаемую память. Она также позволяет PTE и пулу сеансов преодолевать ограничения, указанные ранее, до момента истощения всего ядра.

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

Отслеживание использования оперативной и виртуальной памяти 

Монитор производительности — это основное средство для отслеживания производительности системы и определения узких мест. Чтобы запустить монитор производительности, нажмите кнопку Пуск, выберите пункт Панель управления, Администрирование, а затем дважды щелкните Монитор производительности. Далее представлена сводка по некоторым важным счетчикам и предоставляемым им сведениям:
  • Память, байт выделенной виртуальной памяти. Этот счетчик представляет меру спроса на виртуальную память.

    Он показывает, сколько байтов было выделено процессам и для какого объема памяти ОС выделила рамку страницы ОЗУ или раздел страницы в файле подкачки (или и то, и другое). Если значение Байт выделенной виртуальной памяти превышает объем доступной ОЗУ, подкачка используется более интенсивно, а размер файла подкачки также увеличивается. В определенный момент использование файла подкачки начинает сильно влиять на производительность.
  • Процесс, рабочий набор, _всего. Этот счетчик представляет меру активно используемой виртуальной памяти.

    Он показывает, сколько требуется оперативной памяти, чтобы вся используемая виртуальная память для всех процессов размещалась в ОЗУ. Это значение всегда кратно 4096 — размеру страницы в Windows. Если объем требуемой виртуальной памяти превышает доступный объем ОЗУ, ОС изменяет часть виртуальной памяти процесса, расположенную в рабочем наборе, для оптимизации использования ОЗУ и сокращения применения файла подкачки.
  • Файл подкачки, используется %pagefile. Этот счетчик представляет меру фактического использования файла подкачки.
    С его помощью можно определить, соответствует ли размер файла подкачки требованиям. Если значение счетчика достигает 100, файл подкачки заполнен, и система перестанет работать. В зависимости от изменчивости рабочей нагрузки вы, вероятно, захотите задать достаточный размер файла подкачки, чтобы использовалось не больше 50-75 процентов файла. Если используется большая часть файла подкачки, размещение нескольких файлов подкачки на разных физических дисках может повысить производительность.
  • Память, обмен страниц/сек. Этот счетчик очень часто неправильно интерпретируют.

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

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

    Если ОЗУ недостаточно (например, значение счетчика "Байт выделенной виртуальной памяти" больше объема ОЗУ), ОС попытается сохранить определенную часть оперативной памяти доступной для непосредственного применения, копируя страницы виртуальной памяти, которые не используются активно, в файл подкачки. Поэтому этот счетчик не достигнет нуля, что необязательно является признаком недостатка оперативной памяти в системе.
Дополнительные сведения об этих темах см. на следующих веб-сайтах корпорации Майкрософт и в следующих блогах:

Свойства

Код статьи: 2160852 - Последний отзыв: 2 сентября 2013 г. - Revision: 29.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
  • операционная система Microsoft Windows 2000 Server
  • Microsoft Windows XP Home Edition
  • Microsoft Windows XP Professional
  • Microsoft Windows Server 2003 R2 Datacenter Edition (32-Bit x86)
  • Microsoft Windows Server 2003 R2 Enterprise Edition (32-Bit x86)
  • Microsoft Windows Server 2003 R2 Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Web Edition
  • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Windows Vista Business
  • Windows Vista Enterprise
  • Windows Vista Home Basic
  • Windows Vista Home Premium
  • Windows 7 Корпоративная
  • Windows 7 Домашняя базовая
  • Windows 7 Домашняя расширенная
  • Windows 7 Профессиональная
  • Windows 7 Максимальная
Ключевые слова: 
kbsurveynew kbinfo kbhowto kbexpertiseadvanced KB2160852

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com