Академический Документы
Профессиональный Документы
Культура Документы
Lotus Domino
Киран Беллари 17.01.2006
инженер-программист
IBM
В чем разница между зависанием сервера и аварией? Что важнее? Как их исправить? В
данной статье мы объясним, как можно идентифицировать зависания и аварии сервера
Lotus Domino, и что вы можете сделать для их анализа и устранения.
Lotus Domino является очень надежным сервером. Но даже самые надежные продукты
могут сталкиваться с проблемами, вызывающими их зависания или аварии. Если это
происходит, то чем быстрее вы сможете изолировать, проанализировать и исправить
проблему, тем раньше ваши пользователи продолжат счастливо работать, а вы вернетесь к
другим заботам.
Авария сервера
Авария сервера Domino представляет собой ситуацию, когда серверная программа
завершается и больше не работает. Зачастую, вы можете определить задание, которое
выполнял сервер перед завершением работы, просмотрев аварийный экран или log-файл
NSD/RIP (в зависимости от работающей у вас версии Domino).
• Сервер Domino больше не работает, но другие программы системы все еще работают.
• Консоль сервера Domino не появляется, даже если задания кажутся загруженными.
• Сервер Domino загрузился и неожиданно завершился без выполнения каких-либо
действий.
• На консоли или в Log.nsf отобразилось сообщение о серьезной (panic) ошибке, и
система завершила работу.
• NSD/RIP автоматически выполняет и генерирует файл, а сервер завершается и/или
перезапускается сам по себе.
ABEND - это специальная форма аварии сервера. Термин ABEND - это комбинация слов
"abnormal end" (аварийное завершение). ABEND-аварии не создают файлы RIP или NSD.
Зависание сервера
Зависание сервера Domino - это ситуация, когда сервер Domino все еще работает, но
одна или более задач на сервере не отвечает на запросы. Эти задачи все еще могут
быть активны, но они не делают того, что должны. Термин "зависание" определяет также
состояние, которое иногда возникает, когда компьютерные программы не работают так,
как задумано. Большую часть времени зависания возникают из-за низкоуровневого
зацикливания или постоянной недоступности ресурса, вызывающего серьезные проблемы
производительности. Зависания сервера наиболее часто приписываются проблемам с
ресурсами, поэтому они иногда рассматриваются как проблемы производительности.
• Domino все еще работает, но не отвечает клиентам. В этом случае пользователи часто
сообщают, что они получают сообщения “Server not responding” ("Сервер не отвечает").
• Консоль ведет себя так, как будто она потеряла соединение и не воспринимает никаких
команд, даже таких простых как quit.
• Обращающиеся к серверу клиенты (например, для открытия базы данных)
сталкиваются с большим временем реакции.
• Возникают тайм-ауты семафоров. Команда 'show stat' будет записывать информацию
о тайм-аутах семафоров. Вот пример тайм-аутов семафоров, записанных в Statrep.nsf:
Sem.Timeouts = 430D: 58 0A13:42 030B:28 0116:26 0A12:21. В этом примере 430D - это
имя семафора, а 58 - количество тайм-аутов. Обратите внимание на то, что тайм-ауты
семафоров не всегда указывают на проблему производительности. Обычно тайм-ауты
семафоров возникают на занятом сервере. Статистика Sem.timeouts не появляется в
Statrep.nsf, если на сервере не возникали какие-либо тайм-ауты семафоров.
• Выдаются сообщения, относящиеся к производительности, например:
Insufficient memory.
Insufficient memory. NSF Folder Pool is full.
Maximum number of memory segments that Notes can support has been exceeded.
Network operation did not complete in a reasonable amount of time.
Server not responding.
Обратите внимание на то, что в ситуации с зависанием сервера, NSD/RIP никогда не
генерируются автоматически.
Поиск неисправностей
В данном разделе мы проанализируем общие подходы к поиску неисправностей при авариях
и зависаниях сервера.
Если вы подозреваете, что проблема вызвана поврежденной базой данных или документом,
запустите служебные задания Updall, Fixup и Compact (с соответствующими ключами).
Также, попытайтесь, по возможности, заново создать полнотекстовый индекс в базе данных,
если полагаете, что проблема возникла из-за плохого индекса.
NSD-анализ
"Сердцем" NSD-файла является секция трассировки стека. Эта секция предоставляет схему
прохождения кода каждого потока в существующем процессе и его текущее состояние.
Это очень полезно при анализе аварии или зависания на сервере. Также, исследуя NSD-
файл, вы можете найти все основные файлы, сгенерированные в каталоге Domino data и
можете выполнить основной анализ трассировки последнего стека вызовов, которые были
сделаны аварийным процессом. В таком сложном продукте, как Domino, трассировка стека
одинакового действия на двух различных серверах может выдать различные результаты.
Ниже приведен фрагмент NSD-файла, который был создан при аварии серверного
процесса:
ServerTasks
Если авария сервера происходит постоянно (например, каждые пять минут), полезно
временно удалить строку ServerTasks= из файла Notes.ini сервера. Тогда сервер может
быть перезапущен и задания можно будет загрузить поодиночке для определения процесса,
вызывающего аварию.
Panic-сообщения
Когда Domino обнаруживает постоянную ошибку или условие, которое может привести
к повреждению данных или к каким-либо другим проблемам, он немедленно вызывает
подпрограмму, называемую Panic. Это специальная структура, используемая для
постоянного мониторинга критических частей кода во время его работы. Она помогает
как можно раньше выявить проблемы перед их обострением и возможным повреждением
данных. Когда вызывается panic, система немедленно останавливается (это можно
рассматривать как контролируемую аварию). При этом генерируются сообщения, иногда на
английском, а иногда в виде кода (например: PANIC: 04:3C). Вы можете передать этот код в
службу Lotus Software Technical Support для дальнейшего поиска неисправностей.
memory_ KIRANTP_2005_09_14@17_50_08.dmp
Примечание: Для записи доступной памяти в файл вместо просмотра его на консоли
сервера выполните следующую команду: sh memory dump >memory.txt
Журналы HTTP-запросов
Для поиска неисправностей, связанных с авариями и зависаниями Web-сервера Domino,
служба Lotus Software Technical Support часто просит вас создать журнал HTTP-запросов.
Для разрешения настроек по умолчанию журналов запросов измените файл Notes.ini
на сервере и добавьте строку HTTPEnableThreadDebug=1. Это установит операцию
ведения журналов HTTP-запросов в уровень по умолчанию. Для установки фиксации в
журналах более подробной информации обратитесь к документации по администрированию
Domino. Вы можете также разрешить ведение журналов HTTP-запросов динамически,
введя "tell http debug thread on | off" в консоли сервера Domino. При разрешенном ведении
журналов HTTP-запросов Domino создает набор файлов с названиями htthr*.log. Например:
htthr_a40_10_20050914@171556.log.
Настройки Notes.ini
Для поиска проблем производительности и аварий вы можете разрешить следующие
отладочные параметры Notes.ini:
Activity Trends
Функция Activity Trends (тренды активности) позволяет вам анализировать "исторические"
серверные данные, помогая проследить тренды, которые можно идентифицировать только
за определенный период времени. Вы можете просмотреть эти данные для предсказания
и устранения будущих проблем. Эти данные собираются из log-файла (Log.nsf) и задания
Catalog и записываются в базу данных Activity Trends (Activity.nsf). Задание Activity Trends
Collector обрабатывает эти данные и формирует данные в виде трендов, которые вы можете
использовать для построения графиков и для распределения ресурсов.
Файл Log.nsf также может предоставить снимок действий, записанных в строке состояния
перед аварией Notes-клиента.
Fault Analyzer
Fault Analyzer - это новая функциональная возможность, обрабатывающая все новые
аварии, поступающие в почтовую базу данных Automatic Data Collection. Задание Fault
Analyzer ищет базу данных, настроенную на документы Fault Report, и определяет,
соответствует ли полученный стек уже происходившей аварии. Эта возможность дополняет
функцию Automatic Data Collection, анализируя стеки вызовов, записанные в почтовой базе
данных Fault Report, и оценивая их для определения того, существуют ли другие экземпляры
той же проблемы.
Теперь вы можете выбрать, какие файлы (используя групповые символы) будут собираться
программой Automatic Data Collection, работающей на клиентах или на серверах. На Notes-
клиентах она настраивается в документе Desktop Policy Settings (см. рисунок 2).
На серверах Domino она настраивается в документе Server Configuration (см. рисунок 3).
Функция Automatic Data Collection позволяет вам собирать диагностические файлы из других
продуктов IBM, а также из продуктов сторонних поставщиков.
Shutdown Monitor
Часто требуется продолжительное время для завершения работы сервера Domino после
выполнения команды quit или restart. Чтобы сократить задержку, завершение Domino при
выполнении этих команд гарантирует задание Shutdown Monitor. Если сервер не завершает
свою работу в назначенное время, он завершается принудительно, а перед завершением
работы генерируется log-файл NSD. Предельный срок указывается в поле Server Shutdown
Timeout раздела Automatic Server Restart документа Server в закладке Basics (см. рисунок 4).
По умолчанию Server Shutdown Timeout установлен в 5 секунд. Эта функция может быть
запрещена установкой параметра Notes.ini shutdown_monitor_disabled=1.
Заключение
В данной статье мы определили различия между аварией и зависанием сервера Domino. Мы
рассмотрели некоторые процедуры поиска неисправностей и инструментальные средства,
которые вы можете использовать для анализа и исправления проблем Notes/Domino. Мы
также рассмотрели новее функциональные возможности для поиска неисправностей,
представленные в Notes/Domino 7. Вы можете обратиться к этой статье в любое время,
когда столкнетесь с аварией или зависанием Notes-клиента или сервера Domino, что, как мы
надеемся, не будет происходить слишком часто.
Об авторе
Киран Беллари
Киран Беллари (Kiran Bellari) пришел в IBM в 2004 году, где сначала работал
в группе Domino Document Manager. Потом он перешел в группу технической
поддержки по вопросам устранения аварий сервера Domino. Киран имеет
двойной сертификат CLP, а также получил степень бакалавра в National Insitute
of Technology.