Максимальный объем системного реестра составляет 102 Мбайт, однако все обстоит немного сложнее.

Запись системного реестра, которая определяет максимальный размер системного реестра, называется HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\RegistrySizeLimit. По умолчанию эта запись не существует, поэтому ее необходимо создать вручную.

  1.  Откройте редактор системного реестра (REGEDIT.EXE).

  2.  Перейдите в раздел HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control.

  3.  В меню Правка (Edit) выберите команду Создать > Параметр DWORD (New > DWORD Value) и введите имя записи RegistrySizeLimit.

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

Минимальный размер системного реестра равен 4 Мбайт. Если в системный реестр ввести меньший объем информации, его размер будет принудительно увеличен до 4 Мбайт. Максимальный объем системного реестра составляет 80% от объема нерезидентного пула, равного 128 Мбайт (таким образом, максимальный объем системного реестра равен 102 Мбайт — 80% от 128 Мбайт). Если соответствующая запись не существует, то максимальный объем системного реестра равен 25% от нерезидентного пула. Выгружаемый/нерезидентный пул (paged pool) — это область оперативной памяти, которая используется для хранения системных данных, записываемых на жесткий диск при отсутствии текущей необходимости в этих данных.

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

Описанные выше действия можно осуществить с помощью меню Система (System) в окне Панель управления (Control Panel). Перескочите на вкладку Быстродействие (Performance)
и установите максимальный размер системного реестра. Затем необходимо перезагрузить компьютера.

Дополнительная информация об описываемых аспектах системного реестра приводится в статье Q124594 базы знаний Microsoft Knowledge Base.

Еще одна проблема относится к ранним стадиям загрузки Windows, когда модуль NTLDR загружает некоторый код, резервирует оперативную память и считывает разделы системного реестра. Все это должно вместится в 16 Мбайт оперативной памяти вне зависимости от установленного на компьютере объема ОЗУ. При этом считывается все содержимое системного файла и необходимо, чтобы оперативная память вмещала весь файл, хранимый на жестком диске, вне зависимости от того, какая область файла требуется в текущий момент времени.

Далее представлен список возможных проблем.

· Системный реестр содержит большой объем неиспользуемого пространства. Попробуйте сохранить раздел SYSTEM с помощью редактора системного реестра REGEDT32 и сравните полученный файл с кустом SYSTEM, который расположен в каталоге \%systemroot%\system32\config\. На одном из компьютеров подобным способом размер куста SYSTEM был сокращен с 9720 Кбайт до 864 Кбайт.

· Создание набора управления LastKnownGood (самого последнего набора управления, обеспечившего правильный запуск системы) сразу после загрузки Windows приводит, практически, к удвоению размера системного реестра. В зависимости от различных условий, например, объема неиспользуемого пространства, внесение дополнений в системный реестр может потребовать использования объема памяти, расширяющего объем комбинированных разделов Current и LastKnownGood куста SYSTEM. После следующей загрузки еще один раздел LastKnownGood добавляется в конец файла, увеличивая его объем на треть. В некоторых случаях системный реестр с “истинным” размером в 4 Мбайт расширялся аж до 12 Мбайт, что приводило к срыву загрузки Windows.

Теперь посмотрим на список методов, помогающих сократить неиспользуемый объем системного реестра.

· Для файловой системы FAT: загрузите компьютер с диска DOS и замените файл SYSTEM.

· Для файловой системы NTFS: загрузите Windows NT с другого раздела и замените файл на первоначальном разделе.

· Воспользуйтесь утилитами REGBACK и REGREST из пакета Resource Kit для Windows NT (самый простой способ).

· Введите в командной строке команду rdisk и восстановите систему с помощью аварийного диска. Удостоверьтесь в том, что для создания резервной копии базы данных пользователя используется команда rdisk /s.

· Воспользуйтесь утилитой ERD Commander компании Winternals Software.

Для отключения системных сообщений в процессе загрузки воспользуйтесь редактором системного реестра REGEDT32, добавьте запись ReportBootOk типа REG_SZ и присвойте ей значение 0. Запись должна располагаться в разделе HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon. Это предотвратит создание набора управления LastKnownGood. Если загрузка Windows завершилась неудачей из-за превышения ограничения в 16 Мбайт при работе модуля NTLDR, вывод содержимого оперативной памяти (dump) не проводится и решения этой проблемы Microsoft не предоставляет.