Основные счетчики включают счетчики для оценки характеристик производительности и рабочей нагрузки. Мы не включали счетчики, несовместимые с IIS 6.0.
Примечание: При мониторинге веб-приложений .NET также рекомендуем выполнять мониторинг .NET CLR.
Служба WWW
Счетчики веб-сервиса помогают определить качество обработки запросов службой WWW, функционирующей в режиме пользователя. Помимо этого, счетчики отражают обработку в HTTP.sys, в режиме ядра .
Счетчики можно конфигурировать как для отдельного веб-сайта, так и глобально для всего сервера посредством выбора параметра _Total instance.
Счетчики и их описание
- Отправлено байт в секунду (Bytes Sent/sec) – Скорость отправки данных службой WWW.
- Получено байтов в секунду (Bytes Received/sec) – Скорость получения данных службой WWW.
- Сервис активных подключений (Current Connections Service) – Число активных подключений к WWW.
- Число ошибок «Не найдено» в секунду (Not Found Errors/sec) – Количество ошибок за секунду по запросам, которые не были удовлетворены сервером, поскольку запрашиваемый документ не удалось найти.
- Число ошибок закрытого доступа в секунду (Locked Errors/sec) – Количество ошибок за секунду по запросом, которые не были выполнены по причине закрытого доступа к запрашиваемому документу.
- Текущие запросы к расширениям ISAPI (Current ISAPI Extension Requests) – Число текущих запросов к расширениям ISAPI, одновременно выполняемых службой WWW.
- Запросов к расширениям ISAPI в секунду (ISAPI Extension Requests/sec) – Количество запросов за секунду к расширениям ISAPI, обрабатываемых службой WWW.
Кэш WWW Service
Служба WWW и служба FTP не имеют общего кэша. Их кэши разделены на два независимых объекта. Счетчики WWW service cache предназначены только для мониторинга производительности сервера; их нельзя конфигурировать для мониторинга отдельных сайтов.
Счетчики и их описание
- Текущее использование памяти кэша файлов (Current File Cache Memory Usage) – Текущее количество байтов, используемое для файлового кэша режима пользователя.
- Файлы в кэше (Current Files Cached) – Текущее число файлов, контент которых находится в кэше режима пользователя.
- Текущее число кэшированных URI (Унифицированный Идентификатор Ресурса) (Current URIs Cached) – Текущее число информационных блоков URI, которые хранятся в кэше режима пользователя.
- Текущее число кэшированных метаданных (Current Metadata Cached) – Текущее число блоков метаданных в кэше режима пользователя.
- Ядро: Число попаданий в кэш URI в секунду (Kernel: URI Cache Hits/sec) – Среднее число успешных попаданий в кэш URI в режиме ядра в секунду.
ASP.NET
ASP.NET поддерживает нижеследующие счетчики оценки производительности системы, которые агрегируют информацию от всех приложений ASP.NET на одном веб-сервере, или же от всех серверов ASP.NET, на которых выполняются одни и те же приложения.
Примечание: Не все эти счетчики доступны во всех инсталляциях IIS.
Счетчики и их описание:
- Прервано запросов (Requests Disconnected) – Число запросов, не обработанных в результате ошибок подключения.
- Запросов в очереди (Requests Queued) – Число запросов, ожидающих обслуживания в очереди. Если это число растет одновременно с увеличением числа клиентских запросов, то веб-сервер достиг предела одновременных запросов, который он может выполнить. По умолчанию максимальное значение – 5,000 запросов. Параметр можно изменить в файле Machine.config.
- Отклонено запросов (Requests Rejected) – Общее количество невыполненных запросов ввиду нехватки ресурсов сервера на их обработку. Счетчик представляет количество запросов, возвративших код ошибки 503 HTTP, и показывает, что сервер слишком занят.
- Всего ошибок в секунду (Errors Total/sec) – Среднее число ошибок за секунду во время выполнения http-запросов. Включает все ошибки парсера, компиляции, или ошибки выполнения.
- Уровень обновления кэша (Output Cache Turnover Rate) – Среднее число добавлений и удалений из кэша в секунду. Если значение большое, это значит, что кэш используется неэффективно.
- Активные сеансы (Sessions Active) – Количество активных сеансов. Счетчик поддерживается только для состояния сеансов во внутренней памяти.
- Число транзакций в секунду (Transactions/sec) – Среднее число запущенных транзакций в секунду.
- Число незавершенных транзакций (Transactions Pending) – Число транзакций в процессе выполнения.
Активные серверные страницы (ASP)
Для тех, кто используется ASP на своем сервере, ASP счетчики помогут определить качество ответов сервера или сайта на ASP-запросы. Они предназначены для мониторинга производительности сервера, мониторинг отдельных ASP-приложений не предусмотрен, поскольку ASP счетчики собирают глобальные данные по всей службе WWW.
Счетчики и их описание:
- Ошибок в секунду (Errors/sec) – Среднее число ошибок за секунду.
- Запросов в секунду (Requests/sec) – Среднее число запросов, выполненных за секунду.
- Выполняется запросов (Requests Executing) – Число запросов ASP в процессе выполнения (например, число активных рабочих потоков).
- Запросов в очереди (Requests Queued) – Число запросов ASP, ожидающих обслуживания в очереди. Максимально допустимое число для этого счетчика определяется параметром метабазы AspRequestQueueMax.
- Транзакций в секунду (Transactions/sec) – Среднее число запущенных транзакций в секунду.
Оптимизация и настройка
В работе серверов нередко возникают проблемы с производительностью, и для их устранения требуются настройка и оптимизация. В большинстве случаев это оптимизация кода приложения, но иногда исправление некорректных настроек среды может значительно повысить производительность.
Перечислим несколько возможных направлений для тюнинга. Некоторые ориентированы на веб-сервер IIS, другие же могут применяться к любому веб-серверу. Несомненно, мы охватим далеко не все – есть много других направлений для оптимизации, которые могут оказаться более эффективными для конкретного приложения.
Тюнинг подразумевает длительный и повторяющийся процесс тестирования и анализа. Любое изменение конфигурации требует тщательной проверки. Поэтому перед тем, как следовать нашим советам, убедитесь, что конфигурация соответствует конкретному случаю по параметрам и нагрузке на сервер.
- Настройте максимально допустимое число параллельных соединений. Большое число соединений при высокой загруженности ЦП и значительной длине очереди процессора служит индикатором узких мест в работе CPU. В этом случае следует или ограничить максимальное число разрешенных соединений или увеличить мощность CPU.
- Отключите отладку ASP. Важно, чтобы отключение было выполнено и на сервере и у клиента посредством задания параметрам AppAllowDebugging и AppAllowClientDebug значения «false».
- Установите ASPBufferingOn значение «true» для сбора выходных данных в буфере ASP перед отправкой клиенту.
- Параметр AspProcessorThreadMax Metabase задает максимальное число рабочих потоков, создаваемых IIS на одном процессоре. Для получения максимального числа рабочих потоков, разрешенных для одного ASP-процесса, умножьте это значение на количество процессоров на сервере. При уменьшении значения этого параметра важно осуществлять мониторинг и не допустить, чтобы снижение порогового значения отрицательно сказалось на производительности. Если это происходит, снова увеличьте значение.
- Параметр AspRequestQueueMax Metabase задает максимальное число ASP-запросов в очереди. По умолчанию – 3000 запросов, но оптимальное значение зависит от поведения приложения. Если время выполнения запроса и время нахождения запроса в очереди невелико, есть смысл уменьшить значение параметра.
- Для небольших файлов, активация HTTP Keep-Alives в IIS эффективно удваивает пропускную способность.
- Активируйте http-сжатие для более эффективного использования пропускной способности сети.
- Установите HTTP заголовки Expire для всех изображений и HTML, с целью сокращения количества вызовов веб-сервера прокси-серверами и браузерами.
- Удаляйте ненужный файловый контент. Чем больше файл, тем больше времени необходимо для его передачи по сети.
- По возможности максимально используйте статические файлы для сокращения нагрузки на процессор.
- Создавайте веб-сады (Web gardens), или пулы приложений, которые могут обслуживать многочисленные рабочие процессы.