Вопрос или проблема
Я запускаю Domino 14.0FP2 в тестовой среде перед развертыванием. Мы получаем некоторые веб-запросы (в основном боты, ищущие уязвимости в WordPress, которые просто отклоняются). Однако время от времени запрос вызывает зависание потока с загрузкой ЦП на 100%. Мы даже не можем перезапустить HTTP-процесс (т.е. tell http restart
через консоль не завершается), поэтому нам приходится перезагружать весь сервер. tell http show thread state
указывает, что один поток все еще обрабатывает, а остальные остаются в неактивном состоянии, например:
Http Worker Thread ID [1218]: Рабочая сессия [165]: Состояние сессии [Обработка запроса] : IP-адрес клиента [xx.xx.xx.xx] : Имя пользователя [Anonymous] : GET /domain.nsf?Open HTTP/1.0
Я включил HTTP-журналирование (см. KB0032210), и HTTP-процесс перестает записывать данные на этапе Вызов процесса Inotes
, что указывает на то, что проблема может быть здесь. См. приложенный фрагмент журнала:
*** Конец шага запроса: Сессия 164, Поток 1218, Часы 26092000
*** Запись запроса: Сессия 164, Поток 1218, Часы 26092000
*** Начало SSL-рукопожатия: Сессия 165, Поток 1218, Часы 26094391
*** IP-адрес клиента [xx.xx.xx.xx], IP-адрес сервера [192.168.1.xx]: Сессия 165, Поток 1218, Часы 26094391
*** Успех SSL-рукопожатия: Сессия 165, Поток 1218, Часы 26095250
*** Новый запрос — Разбор и проверка запроса: Сессия 165, Поток 1218, Часы 26096547
GET /domain.nsf?Open HTTP/1.0
Хост: test.ax-ea.net
User-Agent: Mozilla/5.0 (совместимый; NetcraftSurveyAgent/1.0; [email protected])
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: en-gb,en;q=0.5
Accept-Encoding: identity
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Connection: close
*** Обработка запроса: Сессия 165, Поток 1218, Часы 26096547
*** IP-адрес клиента [xx.xx.xx.xx], IP-адрес сервера [192.168.1.xx]: Сессия 165, Поток 1218, Часы 26096547
*** Начало шага запроса: Сессия 165, Поток 1218, Часы 26096562
*** Шаг сырого запроса: Сессия 165, Поток 1218, Часы 26096562
*** Шаг предварительной аутентификации: Сессия 165, Поток 1218, Часы 26096562
*** Шаг аутентификации: Сессия 165, Поток 1218, Часы 26096562
*** Шаг пост-аутентификации: Сессия 165, Поток 1218, Часы 26096562
*** Шаг получения списка групп: Сессия 165, Поток 1218, Часы 26096562
*** Шаг авторизованного доступа к серверу: Сессия 165, Поток 1218, Часы 26096562
*** Шаг перевода: Сессия 165, Поток 1218, Часы 26096562
*** Шаг пост-перевода: Сессия 165, Поток 1218, Часы 26096562
*** Авторизованный шаг: Сессия 165, Поток 1218, Часы 26096562
*** Обработка запроса для пользователя Anonymous: Сессия 165, Поток 1218, Часы 26096562
*** Вызов запроса к кэшу URL: Сессия 165, Поток 1218, Часы 26096562
*** Вызов процесса Inotes: Сессия 165, Поток 1218, Часы 26096562
Похоже, это аналогичная проблема, как в этой статье за сентябрь 2008 года, и решение, похоже, заключалось в понижении версии сервера до предыдущей. Очевидно, это не идеальный вариант.
Кто-нибудь сталкивался с такой же проблемой на Domino 14.0, и если да, знаете ли вы решение?
Заранее спасибо.
Ответ или решение
HCL Domino 14.0FP2 – Проблема с HTTP процессом: «Ожидание завершения сессии»
Введение
Проблема с зависанием HTTP процессов в HCL Domino 14.0FP2 может серьезно повлиять на работу вашего тестового окружения и всей инфраструктуры. В данном документе мы проанализируем вашу ситуацию, опираясь на предоставленную вами информацию и сопутствующие логи, чтобы определить возможные причины и рекомендации по исправлению ошибки.
Подробности проблемы
Вы давно сталкиваетесь с проблемой, когда один из потоков HTTP остается открытым, что приводит к 100% загрузке ЦП. Ваши попытки перезапустить HTTP процесс не приносят результатов, заставляя вас выключать весь сервер. Это может быть вызвано различными факторами, включая особенности архитектуры приложения или конфигурации сервера.
Логи HTTP
Из ваших логов видно, что процесс зависает на этапе «Calling Inotes Process Request». Это намекает на то, что проблема может быть связана с обработкой определенных запросов к NSF-документам. Это может быть вызвано как ошибками в коде, так и этими конкретными запросами, которые вызываются ботами.
Возможные причины
-
Высокая нагрузка на сервер
- Если факторы нагрузки на сервер (например, фоновая работа ботов) приводят к чрезмерному использованию ресурсов, это может повлиять на обработку HTTP-запросов.
-
Некорректно настроенные HTTP параметры
- Неправильная конфигурация параметров HTTP сервера может привести к зависаниям. Проверьте настройки в
notes.ini
, такие какHTTPEnableKeepAlive
,HTTPMaxConnections
и другие.
- Неправильная конфигурация параметров HTTP сервера может привести к зависаниям. Проверьте настройки в
-
Проблемы с обработкой запросов
- Ошибки в коде NSF-документа или неправильные параметры запросов также могут привести к потенциальным зависаниям.
Рекомендуемые действия
-
Оптимизация конфигурации сервера
- Убедитесь, что все параметры, касающиеся HTTP, правильно настроены. Возможно, стоит уменьшить значение
HTTPMaxConnections
, если сервер испытывает трудности с обработкой большого числа одновременных соединений.
- Убедитесь, что все параметры, касающиеся HTTP, правильно настроены. Возможно, стоит уменьшить значение
-
Логи и мониторинг
- Настройте расширенное логирование и мониторинг состояния сервера, чтобы иметь возможность отслеживать производительность в реальном времени и определять, что именно может вызывать зависания.
-
Обновление до последней версии
- Хотя миграция на более раннюю версию, предложенная в обсуждениях сообщества, могла бы помочь, рекомендуется проверить наличие более свежих патчей и обновлений для 14.0FP2, так как часто разработчики выпускают исправления для известных проблем.
-
Исследование работы с NSF-документами
- Поскольку в логах обработка запроса зависает на
Calling Inotes Process Request
, стоит внимательно просмотреть код NSF-документов на наличие потенциальных мест, где может произойти зависание, особенно если в запросах используются сложные коды или вызовы, требующие больших ресурсов.
- Поскольку в логах обработка запроса зависает на
-
Блокировка нежелательных ботов
- Рассмотрите возможность использования файла robots.txt для блокировки ботов, которые могут вызывать ненужные нагрузки. Это позволит снизить количество запросов, вызывающих зависание.
Заключение
Ситуация, которую вы описали, является сложной и требует комплексного подхода к диагностике и исправлению. Следуя приведенным рекомендациям, вы сможете выявить источник вашей проблемы с HTTP-процессами и минимизировать или устранить зависания. Убедитесь, что вы также находитесь в контакте с поддержкой HCL для получения дополнительных советов и обновлений.