Вопрос или проблема
У меня есть CentOS 5.5 Final с Apache 2.2.3, и проверяя, нет ли неправильной конфигурации, я настроил страницу server-status и запрашивая определенную страницу, я получил следующий результат:
Статус сервера Apache для 192.168.3.23
Версия сервера: Apache/2.2.3 (CentOS)
Сервер собран: 30 авг 2010 12:32:08
Т текущее время: вторник, 07-авг-2012 16:27:17 CEST
Время перезагрузки: вторник, 07-авг-2012 15:35:02 CEST
Поколение родительского сервера: 0
Время работы сервера: 52 минуты 14 секунд
Всего обращений: 6263 - Общий трафик: 12.2 MB
Использование CPU: u1.85 s.77 cu0 cs0 - .0836% загрузка CPU
2 запроса/с - 4083 B/секунда - 2043 B/запрос
В настоящее время обрабатывается 1 запрос, 4 бездействующих работника
_..__W_.........................................................
................................................................
................................................................
................................................................
Ключ доски:
"_" Ожидание соединения, "S" Запуск, "R" Чтение запроса,
"W" Отправка ответа, "K" Поддержание соединения (чтение), "D" DNS поиск,
"C" Закрытие соединения, "L" Логирование, "G" Гладкое завершение,
"I" Простой уборка работников, "." Открытый слот без текущего процесса
Srv PID Acc M CPU SS Req Conn Child Slot Client VHost Запрос
0-0 29399 0/14/875 _ 0.03 1 27 0.0 0.03 1.58 X.X.X.X 127.0.0.1 GET /messaggi_xml.php?id_srv=2381&id_dev=1233&last_event=1&i
1-0 - 0/0/908 . 0.40 43 25 0.0 0.00 1.81 X.X.X.X 127.0.0.1 GET /messaggi_xml.php?id_srv=2381&id_dev=1233&last_event=1&i
2-0 - 0/0/859 . 0.45 3 23 0.0 0.00 1.67 X.X.X.X 127.0.0.1 GET /messaggi_xml.php?id_srv=2381&id_dev=1233&last_event=1&i
3-0 29379 0/160/857 _ 0.34 0 25 0.0 0.30 1.68 X.X.X.X 127.0.0.1 GET /messaggi_xml.php?id_srv=2381&id_dev=1233&last_event=1&i
4-0 29380 0/132/804 _ 0.31 1 15 0.0 0.27 1.61 X.X.X.X 127.0.0.1 GET /check_realtime.php?id_srv=2381&id_dev=1233 HTTP/1.1
5-0 29383 0/116/851 W 0.24 0 0 0.0 0.27 1.68 X.X.X.X 127.0.0.1 GET /server-status HTTP/1.1
6-0 29385 0/114/751 _ 0.23 0 16 0.0 0.17 1.32 X.X.X.X 127.0.0.1 GET /check_realtime.php?id_srv=2381&id_dev=1233 HTTP/1.1
7-0 - 0/0/178 . 0.26 2410 22 0.0 0.00 0.48 X.X.X.X 127.0.0.1 GET /messaggi_xml.php?id_srv=2381&id_dev=1233&last_event=1&i
8-0 - 0/0/180 . 0.36 2362 12 0.0 0.00 0.38 X.X.X.X 127.0.0.1 GET /check_realtime.php?id_srv=2381&id_dev=1233 HTTP/1.1
Поскольку я вижу открытый слот без текущего процесса, связанного с некоторыми страницами, означает ли это, что в Apache есть неправильная конфигурация, и есть ли у вас подсказка, чтобы проверить возможный параметр, чтобы избежать этого? Если вам нужна дополнительная информация, например, конфигурации, я могу предоставить…
Кроме того, я должен сказать, что не вижу никаких ошибок в /var/log/messages или /var/log/httpd/error_log или /var/log/httpd/ssl_error_log и также в /tmp/php_error_log… плюс если я выполню ps aux, я не вижу эти открытые слоты в списке…
С уважением,
Луиджи
Открытые слоты без текущих процессов – это просто заполнители для будущих потоков. На слабо загруженных системах вы не увидите, чтобы все слоты использовались потоками. Сравните ваш вывод с доской этого пользователя доска. Почти все их слоты находятся в состоянии ожидания соединения
.
Попробуйте использовать один из этих инструментов для бенчмаркинга HTTP и посмотрите, как изменяется ваша доска.
Ответ или решение
Анализ результатов статуса Apache сервера
Введение
Статус страницы сервера Apache предоставляет ценную информацию о текущем состоянии сервера, его нагрузке и обработке запросов. В этом ответе мы проанализируем результаты, представленные вами, и объясним, почему открытые слоты без активных процессов не указывают на конфигурационные проблемы.
Основные наблюдения
Ваши результаты показывают, что сервер работает, обрабатывает запросы, и в некоторых слотах отображаются точки (".") или подчеркивания ("_"), указывающие на состояния процессов. Это стандартное поведение для Apache, особенно при низкой нагрузке.
Интерпретация значений
-
Открытые слоты:
- Открытые слоты без активных процессов (представленные как ".") означают, что данные слоты готовы обрабатывать входящие соединения, но на данный момент не используются. Это не свидетельствует о проблеме с конфигурацией. Обычно наличие свободных слотов говорит о том, что сервер не перегружен и может принять дополнительные запросы.
-
Состояние процессов:
- "_": Ожидание соединения.
- "W": Отправка ответа.
- ".": Свободный слот.
В вашем случае несколько процессов находятся в состоянии ожидания, что указывает на нормальное функционирование сервера.
-
Параметры нагрузки:
- Указанный показатель загрузки CPU – 0.0836% – говорит о том, что ресурсы используются не полностью. Это еще раз подтверждает, что сервер достаточно способен обрабатывать текущую нагрузку.
Рекомендации
-
Используйте инструменты для нагрузки:
Для более точного анализа рекомендуется использовать инструменты для нагрузочного тестирования, такие как Apache Benchmark (ab) или JMeter. Они помогут вам увидеть, как изменяются статусы процессов с увеличением нагрузки. -
Конфигурация сервера:
Если вы хотите оптимизировать настройки, проверьте следующие параметры в вашемhttpd.conf
:- MaxClients: Указывает максимальное количество клиентов, которые могут быть одновременно обслужены.
- MinSpareServers и MaxSpareServers: Эти параметры помогут поддерживать запас слотов, когда на сервер приходит много запросов в одно время.
-
Анализ логов:
Поскольку вы не видите ошибок в логах, это также хорошо. Однако стоит проверять логи/var/log/httpd/access_log
и/var/log/httpd/error_log
на предмет необычных запросов или частых статей ошибок 5xx, что может указывать на нагрузку на сервер.
Заключение
Ваши результаты не указывают на неправильную конфигурацию Apache. Открытые слоты — это нормальное поведение, особенно на менее загруженных системах. Оцените параметры нагрузки и используйте стресс-тесты для определения поведения вашего сервера под нагрузкой. Если у вас есть дополнительные вопросы или нужны дальнейшие рекомендации, не стесняйтесь делиться дополнительной информацией о конфигурации.