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


Дисковое пространство реестра

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

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

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

Представления файлов реестра сопоставляются в памяти пула страниц.

Windows Server 2008 для 32-разрядной версии Windows Vista с пакетом обновления 1 (SP1) для 32-разрядной версии, Windows Vista, Windows Server 2003, Windows XP: представления файлов реестра сопоставляются в адресном пространстве кэша компьютера. Таким образом, независимо от размера данных реестра, плата не взимается более чем за 4 мегабайта (МБ).

Максимальный размер куста реестра составляет 2 ГБ, за исключением системного куста.

Windows Server 2003 с пакетом обновления 1 (SP1), Windows Server 2003 и Windows XP: Нет явных ограничений на общий объем пространства, который может использоваться кустами в памяти пула страниц и в дисковом пространстве, хотя квоты системы могут повлиять на фактический максимальный размер. Максимальный размер куста реестра ограничен 2 ГБ, начиная с Windows Server 2003 с пакетом обновления 2 (SP2).

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

Система Максимальный размер системного hive
Системы на основе x86 50 процентов физической памяти до 400 МБ.Windows Server 2003 с пакетом обновления 2 (SP2), Windows Server 2003 с пакетом обновления 1 (SP1), Windows Server 2003 и Windows XP: 25 процентов физической памяти до 200 МБ.
Системы на основе x64 50 процентов физической памяти, до 1,5 ГБ.Windows Server 2003 с пакетом обновления 2 (SP2): 25 процентов системной памяти до 200 МБ.
Windows Server 2003 с пакетом обновления 1 (SP1), Windows Server 2003 и Windows XP 64-разрядная версия: 32 МБ.
Системы на основе Intel Itanium 50 процентов физической памяти, до 1 ГБ.Windows Server 2008, Windows Vista, Windows Server 2003 с пакетом обновления 2 (SP2), Windows Server 2003 с пакетом обновления 1 (SP1), Windows Server 2003 и Windows XP 64-разрядная версия: 32 МБ.

Windows 2000

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

HKEY_LOCAL_MACHINE
   System
      CurrentControlSet
         Control

По умолчанию размер реестра составляет 25 процентов пула страниц. (Размер пула страниц по умолчанию составляет 32 МБ, поэтому это 8 МБ.) Система гарантирует, что минимальное значение RegistrySizeLimit составляет 4 МБ, а максимальное значение составляет около 80 процентов PagedPoolSize. Если значение этой записи превышает 80 процентов размера пула страниц, система устанавливает максимальный размер реестра на 80 процентов от размера пула страниц. Это предотвращает использование реестра места, необходимого процессам. Обратите внимание, что установка этого значения не выделяет пространство в пуле страниц, а также не гарантирует, что пространство будет доступно при необходимости.

Размер пула страниц определяется значением PagedPoolSize в следующем разделе реестра:

HKEY_LOCAL_MACHINE
   System
      CurrentControlSet
         Control
            SessionManager
               MemoryManagement

Пример определения текущих и максимальных размеров реестра см. в определении размера реестра.

Максимальный пул страниц составляет около 300 470 МБ, поэтому размер реестра составляет 240–376 МБ. Однако если используется параметр /3GB, максимальный размер пула страниц составляет 192 МБ, поэтому реестр может быть не более 153,6 МБ.