CompoWiki: НастройкаWindowsNT

 
Вместо вступления:

Собственно говоря, данный материал больше будет относиться к Windows 2003/XP, но многое работает и в NT4, 2000

Очень часто встречаю в сети всевозможные "твикеры" и т.п. ерунду... и поражаюсь тому, что за них еще денег требуют... ведь порой они просто паразитируют на самой системе.

Итак, поехали... (подразумевая что вы знаете что такое реестр Windows NT системы и как его редактировать). Ну и, как всегда, умываю руки в случае, если вы угробите систему при использовании тех или иных советов.

А вообще то, делайте копию ветки реестра перед тем, когда что-то в нем меняете, не зная какой результат это вам даст! Тогда, я думаю, особых сложностей с отменой тех или иных экспериментов в реестре не будет!

Итак, если конфигурация вашего компьютера что-то вроде PIII-733+, 256МБ, и на HDD свободно как минимум 3–4Гб, то вы можете практически использовать рекомендумые параметры, не опасаясь за его дальнейшую работоспособность.


Настройки производительности

Процессорный кеш второго уровня

Рассмотрим ветку реестра.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management

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

SecondLevelDataCache (REG_DWORD) = Размер кеша 2 уровня процессора в КБ

пример SecondLevelDataCache=1024 (Для процессора P4–2.8 Prescott c кешем второго уровня 1 МБ) – кстати, это поднимет производительность во многих играх и таких программах как 3DMax.


Виртуальная память

В той же ветке

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management

Рекомендуется при наличии физически! второго жесткого диска использовать его на первом разделе второго жесткого диска.

PagingFiles (REG_MULTI_SZ) = (Имя файла и путь)+(пробел)+(мин размер)+(пробел)+(максимальный размер). Например, у вас 512 мб ОЗУ и поднастроим PagingFiles = D:\virtual.sys 512 1024 ; естетственно, у вас должно быть 1024 мб свободного места на диске, согласно примеру.

SystemPages (REG_DWORD) = Максимальное количество виртуальных адресов.

В 16-ричном формате ставте FFFFFFFF – Это позволит использовать максимально возможное количество (Без ограничения) но займет примерно 1/3 виртуальной памяти. А также, возможно придется увеличить размер файла подкачки.

LargeSystemCache (REG_DWORD) = 0 – отключить 1- включить

значение 1 увеличит производительность файловой системы....

Параметр

IOPageLockLimit (REG_DWORD) можно расчитать

По следующей формуле – ОЗУ в МБ умножаем на 128 и умножаем на 3/4

Или вот еще такой (мой метод) ОЗУ в КБ делим на 8 и умножаем на 3/4 .

При данной корректировке I/O получим прирост производительности при чтении и записи на HDD

Пример Для ОЗУ = 2 ГБ -> 2*1024*1024/8*3/4=196608

IOPageLockLimit=196608(Decimal)

DisablePagingExecutive (REG_DWORD) = 0 отключить, 1- включить.

По умолчанию = 0 – но рекомендую поставить = 1, дабы не забивать виртуальную память ядром системы, да и сама система будет работать немного шустрее.


Префетч (ускорение запуска)

Далее пойдет речь о подветви Memory Management- PrefetcherParameters

Эта настройка позволяет ускорять запуск программ и системных файлов – обеспечивая их дополнительным кешированием

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters\

EnablePrefetcher (REG_DWORD) = Применимы значения (0, 1, 2, 3)

0 – отключено (Рекомендуется для маломощных компьютеров)

1 – рекомендуется для компьютеров с ОЗУ до 256МБ (Только программы)

2 – Для тех у кого на борту от 512МБ и более (программы и системные быблиотеки)

3 – Это уже рассчитано для супер-пупер мощных процов + минимум ОЗУ 512Мб, хотя при LargeSystemCache=1 прекрасно работает и на 256Мб ОЗУ.

Рекомендую EnablePrefetcher=3

RootDirPath (REG_SZ) = Prefetch – это путь (каталог) относительно %systemroot%, т.е. например, C:\WINNT\Prefetch тоже можно изменить, если есть другой физический диск. Аналогично с файлом подкачки, хотя не особо заметно.. но тоже дает кое-какую долю прироста... (PS папку Для Prefetch, на новом месте, придется создать самому)

В природе вы можете встретить упоминание о EnablePrefetcher=5 или волшебном ключе EnableSuperFetch=1 – скажу из личного опыта толку от них нет. А в Windows XP SP2 EnablePrefetcher=5 – может дать ошибку о повреждении реестра.

Параметры Prefetch можно также использовать для запуска отдельных программ, достаточно в свойствах ярлыка программы добавить ключик /Prefetch:1 – и заметим ускорение запуска этой программы, но, к сожалению, не со всеми программами это работает.

На примере моего любимого браузера FireFox в свойствах ярлыка

"C:\Program Files\Mozilla Firefox\firefox.exe"

меняем на...

"C:\Program Files\Mozilla Firefox\firefox.exe" /prefetch:1


Настройка паузы перед отключением служб и программ

Для служб и модулей:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control

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

WaitToKillServiceTimeout (REG_SZ) = Значение в милисекундах вполне приемлемое = 2000 или если вдруг возникнут проблемы (это можно будет заметить по логам – вского рода ошибки в завершении служб, хотя это может возникнуть только на перегруженных серверах с MS ISA, MS SQL, MS EXCHANGE) 5000, но никак не = 0 если не хотите чтобы все рухнуло.

По умолчанию оно равно 20000 а при установленном почтовом сервере (Exchange) обычно система увеличивает его до 80000. Но, опять же из личного опыта, скажу что даже с Exchange 2003 параметр WaitToKillServiceTimeout=2000 проблем не создавал.

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

Для программ:

HKEY_USERS\.DEFAULT\Control Panel\Desktop (Для всех по умолчанию)

HKEY_CURRENT_USER\Control Panel\Desktop (Для текущего пользователя)

WaitToKillAppTimeout (REG_SZ) = 2000 или опять же 5000 в случае проблем

По умолчанию оно равно 20000


Настройка запуска скриптов и выгрузки модулей из памяти

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion

Очень интересная ветка с подветками для настроек, но практически мало чего для настройки производительности.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon

RunLogonScriptSync (REG_DWORD) = 0 или 1

По человечески говоря, значение 0 ничего не даст, точнее, все будет так же как раньше; а значение 1 – даст вам некоторые удобства в загрузке системы потому, что оболочка Windows Explorer запускается после выполнения скриптов и системных модулей.

Этот ключ отсутствует по умолчанию в Windows 2000/XP/2003, естественно, надо его создать

Если не верите, смотрите сами на мелкософте

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

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer

AlwaysUnloadDLL (REG_DWORD) = 0 (по умолчанию) 1(Рекомендую)

AlwaysUnloadDLL=1 – выгружает из оболочки неиспользуемые модули DLL которые висят в памяти якобы для ускоренного доступа к ним. При EnablePrefetcher=3 очень даже рекомендую установить AlwaysUnloadDLL=1


Заключение

Это пожалуй и все, что даст вам реальный рост производительности в системе семейства Windows NT.

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

Вот пример как по отдельности искать информацию по каждому ключу на примере MSN Search


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

под Virtual PC 2004 SP1

используя систему Windows Server 2003 SP1Enterprise Edition, причем с поднятым на нем домене ! (Хотя это уже для следующего материала к статье)

Система (7 Кб)

Доказательства эфективности данных настроек в совокупности

Используя то, что нашел под рукой – PC Mark 2002 при следующей конфигурации тестов

Используемые тесты (9 Кб)

Результаты до правки реестра

Результаты до правки реестра (6 Кб)

Результаты после настроек реестра (только тех что описаны в данной статье)

Результаты после настроек реестра (6 Кб)


Думаю что в совокупности настроек это вполне достойный результат (Прирост производительности по трем параметрам CPU, MEM, HDD) с учетом того, что тест проводился на виртуальном компьютере – очень даже не плохо !


Добавил спустя 1 день:

прошел один день, а результаты производительности в тестах повысились :)))

Вполне серьезно!

Я так подумал и все-таки решил их обнародовать.

Через день (5 Кб)


Для обсуждения изложенного приглашаю на Форум.

Sea Wol F.