Сторожевой пес нагруженности: зачем мы создали свой инструмент для мониторинга работы 1С

Менеджер продукта BIA Technologies Анна Бочарова рассказывает, как система мониторинга PerfDog помогает не допустить критичных сбоев на пике продаж.

Источник: <a href="https://www.freepik.com/author/wirestock" rel="nofollow noreferrer noopener" target="_blank">wirestock</a>, Freepik
Источник: wirestock, Freepik

Когда зависает система — это всегда неприятно. Когда речь идет о системе, которая непосредственно связана с обслуживанием клиентов, — это уже прямые убытки для бизнеса. Представьте себе: майские праздники, всплеск потребительского спроса, а у кассы выстроилась очередь из десятка недовольных покупателей. А всё потому, что в системе возникли неожиданные проблемы со скоростью обработки данных, и процесс записи чека начал занимать тридцать секунд вместо пяти. Последние покупатели в очереди утомились ждать, развернулись и просто ушли. А в качестве вишенки на торте — оставили негативный отзыв на «тормознутый» магазин в интернете.

Директор компании рвет на себе волосы и обрушивается на ИТ-отдел или в панике заказывает услугу технической поддержки у знакомого подрядчика. В понедельник, когда нагрузка на систему традиционно снижается, проблемы магически исчезают. Если компания не занималась скрупулезным сбором статистики о работе системы, то выяснить, почему она «упала» на выходных, невозможно. Специалист техподдержки вручную настраивает сбор данных и ждет вечера пятницы, когда продажи снова взлетят, а система начнет давать сбои.

Это действительно происходит. Но по какой причине? Может быть, дело в высокой нагрузке на оборудование? Или в управляемых блокировках? Или в наличии ошибок в работе системы управления базами данных (СУБД)? Или банально в некорректно написанном программном коде? Специалист вручную анализирует показатели нагрузки, смотрит структуру объектов, проверяет все уязвимые места шаг за шагом, пока наконец не находит участок системы, операцию или запрос, который виновен в ужасных задержках. Дело «за малым» — максимально быстро разрешить проблему (разумеется, по повышенной ставке за срочность) и надеяться, что в следующие выходные ситуация уже не повторится.

Для крупного розничного магазина эта история звучит как страшный сон. Это большая потеря для бизнеса и в принципе большой стресс для всех участников процесса, начиная с несчастных кассиров и заканчивая операционными директорами, которые потом рассказывают на совещании про упущенную выручку. Однако на практике такое случается не так редко, как можно было бы подумать. Многие компании в принципе живут в вечном режиме «тушения пожаров» и при этом никак не обзаведутся датчиком дыма или огнетушителем. Возникает вопрос: можно ли обезопасить себя от таких ситуаций и не доводить бизнес до кризиса?

На самом деле, на рынке представлен целый ряд решений для мониторинга нагруженности информационных систем. Но ни одно из имеющихся решений не показалось нам идеальным. Какие-то из них не указывают на источник проблемы, а лишь сообщают о ее наличии. Другие хорошо определяют нагрузку на уровне СУБД, но практически не работают на уровне приложения и технологического журнала. Третьи не способны оперативно проанализировать высоконагруженную систему с тысячей пользователей и отображают статистику с запозданием на сутки.

Протестировав различные инструменты, мы пришли к пониманию, что нам необходимо создавать собственное решение. Нам нужен свой «сторожевой пес» производительности (performance), который будет вынюхивать любые проблемы за километр вокруг. А в нетиповых конфигурациях систем, разработанных своими силами, такие проблемы бывают. Так на свет появился PerfDog — инструмент для мониторинга и оценки производительности нетиповых конфигураций на базе платформы «1С».

PerfDog осуществляет неусыпный контроль нагрузки как на уровне СУБД, так и на уровне серверов «1С» и контекста кода. Собранная с помощью инструмента статистика позволяет засечь любые отклонения на ранней стадии и вовремя провести рефакторинг. По аналогии с подсказками смартфона, который показывает, какие приложения занимают больше всего места в памяти девайса, PerfDog показывает самые ресурсоемкие запросы к базе данных. Видя операции, которые могут в будущем перегрузить систему, мы можем предпринять оперативные шаги по их оптимизации.

Благодаря мониторингу, системный администратор может выявить задержки, которые практически не вызывают нагрузки на «железо» и в обычной ситуации остались бы незамеченными. Если, например, при нажатии определенной кнопки система стала обрабатывать запрос за две секунды вместо одной — рядовой бизнес-пользователь чаще всего даже не обратит на это внимания. Обнаружив жертву и виновника ожидания, ИТ-специалист сможет исправить ситуацию до того, как система начнет зависать на целый час (да, такое бывает!).

Что особенно ценно, PerfDog позволяет задать определенные границы нормы и настроить отправку оповещений при выходе за эти границы. Например, если мы расцениваем снижение скорости обработки запроса до 5 секунд как опасное, наш сторожевой пес начинает «лаять» при достижении этого порогового значения. Мы замечаем повышенную нагрузку на центральный процессор и сразу решаем проблему.

Отдельное внимание при разработке решения мы уделили его интерфейсу. Нам было важно, чтобы собранную статистику можно было сгруппировать и вывести на визуально понятный дашборд. Собранные на одном экране графики помогают обнаружить неочевидные закономерности и влияние одного фактора или процесса на другой.

Поскольку мы взяли за основу инструмент с открытым кодом, PerfDog можно легко дорабатывать под себя. Конкретный пользователь может подключить сервис по сбору и анализу дополнительных данных, настроить нужный именно ему набор графиков, обогатить текущие дашборды и задать визуальное отображение всей необходимой информации под конкретную техническую задачу.

Но при всех преимуществах решения, нужно понимать, что PerfDog не спасет бизнес от пожара. Когда у кассы столпилась очередь из недовольных покупателей, системным администраторам уже, мягко говоря, не до настройки красивых дашбордов. Система анализа нагрузок — инструмент проактивного мониторинга. Лучшее время для его установки — когда всё, на первый взгляд, работает в штатном режиме, и ничто не предвещает беды. В такое благословенное время руководитель должен задать себе вопрос: если случится пожар, как я буду действовать? Решать проблему самостоятельно или привлекать сторонних специалистов? Какая информация мне потребуется? Какого вообще вида бывают пожары, то есть на каких узлах и какие бывают отказы? Ответом на все эти вопросы может послужить продвинутая система мониторинга.

12
4 комментария

Какой красивый песель, он заслуживает лайка! Свой или нагенерированный?

1
Ответить

А как это дашборд выглядит? Мало графики. Дайте хоть глянуть

Ответить

Интересно. Но заметил, что в последнем абзаце предложения начинаются с малой буквы. Интересно)

Ответить

Какой красивый пес

Ответить