Собственно говоря, данный материал больше будет относиться к 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, дабы не забивать виртуальную память ядром системы, да и сама система будет работать немного шустрее.
Эта настройка позволяет ускорять запуск программ и системных файлов – обеспечивая их дополнительным кешированием
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\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
Хотя я все это выдал вам проверенным на своем опыте, все же рекомендую ознакомиться с каждым ключом в отдельности самостоятельно, благо это не секретные настройки системы.
Вот пример как по отдельности искать информацию по каждому ключу
на примере MSN Search
под Virtual PC 2004 SP1
используя систему Windows Server 2003 SP1Enterprise Edition, причем с поднятым на нем домене ! (Хотя это уже для следующего материала к статье)

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

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

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

прошел один день, а результаты производительности в тестах повысились :)))
Вполне серьезно
!Я так подумал и все-таки решил их обнародовать.
