Установка и настройка IIS.
После установки SP3 сервер IIS2 из поставки NT4 "проапгрейдится" до сервера IIS3.
Определяемся - будем работать на этой версии или двинемся дальше. Если Вы решили остановиться на IIS3.0 то :
- Идем на Microsoft и скачиваем ASP1b Это где-то тут. http://www.microsoft.com/iis
ASP - это библиотека, кипа документации и много-много воображения :-) . Скрипт - "енжина", движка, мотор обрабатывающий на стороне сервера последовательность команд и возвращающий клиенту HTML - код в ответ на действия клиента в контексте задачи. ASP позволит оживить сайт, и сделать его содержимое динамическим.
Ниже - табличка эволюции ASP.
ASP ASP Asp.dll Asp.dll Asp.dll
version build version date size 1.0 1.12.09 1.12.06 12/6/96 1.0a 1.13.31 1.13.09 1/31/97 371,744 1.0b 1.15.14 1.15.14 3/14/97 378,992 Если Вы по каким либо причинам не смогли найти пакет ASP, то просто скачайте с FTP - сайта Microsoft свежую библиотеку и "пропишите" ее в системе. Для этого - скопируйте ASP.dll в winnt\system32\inetsrv\ и с командной строки из этого каталога выполните 'regsvr32 ASP.dll '. Если пакет найден, то просто запустите .exe и наслаждайтесь процессом, в итоге у Вас будет и скрипт - енжина и документация.
- Ставим необходимые "фиксы". Как минимум: Get Admin Fix, Teardrop2 Fix, Snc Fix, SimpTCP Fix, SRV Fix, и все фиксы применительно к IIS3.0 и ASP (см таблицу).
В случае, если вы будете что либо изменять в конфигурации компьютера и при этом использовать дистрибутив NT4 не забудьте переустановить SP3 и Fixes.
Если вы решили установить IIS4, то скачивайте При установке компонент опшен-пака не ставьте того, что Вам не знакомо. Мне понадобился по началу IIS4 со всей документацией, ADO, RDS, FTP. Index Server я не ставил, т.к. есть решения и по круче, например от или от . Опять таки, после установки IIS4, ставим соответствующие Fixes.
Перезагрузка прошла успешно, NT "пропатчена" и "профиксена", начинаем оптимизировать.
Направление оптимизации системы и WWW сервера зависит от того, какие задачи будут выполняться.
В частности, будем ли мы использовать базы данных, а если будем, то какие именно? Каким будет сайт, его размер. Скорость и тип линии, по которой мы соединяемся с провайдером и еще много и много чего, в том числе: количество и тип процессоров , их загруженность, размер RAM и скорость винчестера. В таблице систематизированы типовые решения для IIS4.
Генеральные установки | Действия | Решения |
Удаляем не используемые "маппинги". | Microsoft Management Console -> Web sites (virtual servers) -> Right-click -> properties -> Home Directory -> Application Settings section -> Configuration button. Удаляем все маппинги кроме тех, которые будем использовать, как правило, остается только .asp Если Вы не нашли ни одного знакомого Вам расширения, все равно оставьте .asp | Высвобождаем ресурсы IIS. |
Для сильно загруженных серверов: установите Performance bar в положение More than 100,000. | Microsoft Management Console -> Web sites (virtual servers) ->Right-click -> properties ->Performance Переместите ползунок в право в положение More than 100,000. | Перераспеделение ресурса процессора и системы с "простаивающих" процессов на IIS. Примечание: Используйте эту установку только для нагруженных сайтов. |
Лог файлы | ||
Если не используете лог - файлы, то отключите их. | Microsoft Management Console -> Web sites (virtual servers) ->Right-click -> properties->снимите галочку Enable Logging. | Высвобождает системные реурсы. |
Параметры протокола TCP - IP | ||
Настройка TCP параметров в registry. | Использовать Regedt32. HKLM\CurrentControlSet\ Services\TCPIP Parameters. Добавить value MaxUserPort в случае его отсутствия и установить значение 0xfffe. Добавить value TcpWindowSize в случае его отсутствия и установить значение 0x4470. | Увеличение количества открытых портов и больший размер фрейма TCP позволят повысить производительность протокола. |
Параметры для мультипроцессорных систем | ||
Проверьте количество IIS threads.(потоки) Для проверки глубины очереди и количества потоков используйте Монитор. | Если Ваша система имеет N процессоров и количество процессов в очереди находится в пределах от N до 3N то все в порядке. Если не уверены - оставьте значения по умолчанию. Для статических рабочих нагрузок. Вы можете установить MaxPoolThreads в 1 и PoolThreadLimit равным числу процессоров в вашей системе. | Количество потоков должно быть таким, чтобы поступающие запросы не оказались заблокированными Однако, каждый поток использует системные ресурсы и может потенциально вызывать ненужные контекстные переключения. Цель состоит в том, чтобы сбалансировать количество потоков и запросов к IIS. |
Оптимизация для Статических нагрузок | ||
Установка TTL (время жизни объекта в кэше) По умолчанию: 30 секунд | Используйте Regedt32, HKEY_LOCAL_MACHINE\ System\ CurrentControlSet\ Services\InetInfo\ Parameters. Добавьте value ObjectCacheTTL Установите то значение, которое пожелаете. Определяется опытным путем, если не знаете что ставить, оставьте как есть. | Если ресурсов много а сайт маленький - установите 0xffffffff. Этим Вы отключите очистку кеша. |
Установка OpenFileInCache - количество хэндлов в кэшэ.По умолчанию: 1000 на каждые 32MB физической памяти | Используйте Regedt32, HKEY_LOCAL_MACHINE\ System\ CurrentControlSet\ Services\ InetInfo\ Parameters. Добавьте value OpenFileInCache если оно отсутствует. Установите величину исходя из количества памяти. | Большие статичные сайты могут резко поднять производительность увеличивая количество хэндлов в кэше. В этом случае обращение к файлам будет производиться не на винчестера а непосредственно к файлам в памяти компьютера. |
Оптимизация ASP | ||
Установите Processor ThreadMax на минимум. (по умолчанию - 30) | Используйте Regedt32, HKEY_LOCAL_MACHINE\ SYSTEM \CurrentControlSet\ Services \W3SVC \ASP\Parameters. Добавьте ProcessorThreadMax Необходимо контролировать по монитору производительность IIS. Если при уменьшении величины ProcessorThreadMax производительность понизится - восстановите исходные параметры. | Перераспределение процессов в мультипроцессорных системах сбалансирует нагрузку. Хорошо написанные скрипты ASP используют многопоточность. |
Установите в AspScriptEngine CacheMax значение Processor ThreadMax, соответственно количеству процессоров в системе (умножить исходное значение) По умолчанию: 30 | Скрипты для изменения настроек в IIS4 хранятся в metabase. Путь: /System32/ inetsrv/ adminisamples. Файл adsutil.vbs | Данные настройки позволять енжине наиболее эффективно кэшировать скрипт - файлы. |
Включите буферизацию для приложений ASP. | Microsoft Management Console -> Web sites (virtual servers) ->Right-click -> properties -> Performance -> Home/Virtual Directory property -> Configuration button ->App Options property -> Enable Buffering option. | Установка этой опции буферизует вывод ASP на браузер. Это позволяет серверу передавать полный ответ в контексте задачи а не порцию обработанных данных. |
Минимизируйте значение Session Timeout | Microsoft Management Console -> Web sites (virtual servers) ->Right-click -> properties | Экспериментальным путем выберите значение. У меня - 180 |
Примечание. Все значения - "DWORD". Высокий ObjectCacheTTL работает лучше всего для узлов с маленьким числом "популярных" файлов. Если. Если число часто требуемых файлов большое, высокий ObjectCacheTTL не поможет. IIS будет стараться оставить в кеше большее количество файлов и, в итоге, кэш будет заполнен,что замедлит открывание файлов. Установка высокого TTL полезна только в том случае, когда файлы многократно используются в пределах TTL периода. Используйте параметр OpenFilesInCache, чтобы ограничить число открытых файлов . Если Вы будете использовать лог - файл:
- размещайте его на самом скоростном устройстве
- ИМХО правильней сбрасывать логи в базу данных - в последствии легче анализировать (поля базы данных описаны в дакументации на IIS и даже есть текстовый файл с телом SQL - запроса для создания необходимой таблицы).