Мониторинг веб-кластера, анализ трендов и планирование развития Александр Демидов «1С-Битрикс»

Презентация:



Advertisements
Похожие презентации
Как жить в облаке без админов? Александр Демидов руководитель направления арендных решений «1С-Битрикс»
Advertisements

Экономика отказоустойчивости веб-проектов Александр Демидов «1С-Битрикс» #FailOverConf.
Александр Сербул Руководитель направления контроля качества интеграции и внедрений Проактивный мониторинг и анализ трендов #bitrix #bitrix24.
Александр Сербул Руководитель направления контроля качества интеграции и внедрений Мониторинг веб-проектов: штаб оперативного реагирования и аналитический.
Экономика отказоустойчивости и резервирование инфраструктуры Александр Демидов «1С-Битрикс»
Мониторинг веб-проектов: real-time мониторинг и аналитика, поиск ошибок и «боевая» отладка Александр Демидов «1С-Битрикс»
Александр Демидов «1 С-Битрикс» Производительность Виртуальная машина 3.0 Инструменты отладки Летняя партнерская конференция «1 С-Битрикс» 2011.
Архитектура проекта «Битрикс24»: как сделать так, чтобы все летало и не падало Александр Демидов руководитель направления арендных решений «1С-Битрикс»
Веб-кластер, планы по развитию, распределенный веб-кластер Максим Смирнов ведущий разработчик.
Платформа разработки высоконагруженного веб-сервиса: инструменты отладки и возможности масштабирования Александр Демидов руководитель направления арендных.
Александр Сербул Руководитель направления контроля качества интеграции и внедрений Создание отказоустойчивых сайтов Александр Демидов Руководитель направления.
Что клиенты просят доделать после партнеров Евгений Потапов ITSumma.
CMS и хостинг Докладчик: Константин Малов Компания : Хостинг-Центр РБК.
Сергей Рыжиков генеральный директор компании «1С-Битрикс» Архитектура и запуск SaaS решения в Amazon AWS. Как обеспечить реальные 24?
Инструменты аналитики и мониторинга поведения пользователей 40 вебинар UX Russia Мария Синицина, Анастасия Якубова.
Использование Amazon Web Services Соболев Д.Н. (ВМИ-115)
Онлайн сервис TAB (TrackAllBanks.com) ONLINE МОНИТОРИНГ МАРКЕТИНГОВЫХ АКТИВНОСТЕЙ БАНКОВ экономит 348 часов в день.
Создание тест-плана jmeter – от расчета цепочек до нагрузочного кластера на 5-10 млн. хитов Сербул Александр Руководитель направления контроля качества.
Как превратить посетителя в пользователя? Методы и приемы оценки сайта Ксения Бабий руководитель отдела продвижения Семинар «1С Битрикс»: «Формула сайта:
Система мониторинга на уровне ЛПУ Удаленные рабочие столы АСУ учета заявок пользователей.
Транксрипт:

Мониторинг веб-кластера, анализ трендов и планирование развития Александр Демидов «1С-Битрикс»

А нужно ли всегда знать о «состоянии здоровья» сайта? Вроде работает… Тормозит – «пнем» админа, чтобы что-то там перезапустил, это всегда помогает Если что, можно быстренько что-то дописать на «бою»

Почему сайт должен быть быстрым? Замедление загрузки страницы на 1 секунду снижает конверсию на 7%, а количество просмотров - на 11%.

Почему сайт должен быть быстрым и всегда доступен? Клиенты и их лояльность (сайт недоступен – потеряны заказы). «Избалованность» клиентов быстрыми ajax- интерфейсами Индексация сайта поисковыми роботами Финансовые потери во время рекламных компаний Стоимость контекстной рекламы

Клиенты чутко реагируют на доступность и скорость веб-проекта – днем … и ночью Вашу веб-систему есть с чем сравнить - Google, Facebook, Twitter … Вас рассматривают «под лупой», обсуждая недостатки в соцсетях и Twitter! А зачем мониторить веб-проекты?

Real Time мониторинг – как узнавать о проблемах? Можно – так…

Real Time мониторинг – как узнавать о проблемах? Или – так…

Веб-приложение Кэширование на диск База данных Мониторинг простой системы…

Elastic Load Balancing Web 1 Elastic Load Balancing Dynamic HTTPS *.com/*.de Web N … CloudWatch + AutoScaling Web 1 Web 2 Web N … CloudWatch + AutoScaling …и сложной S3 management, monitoring, backup Static HTTPS *.com/*.de CDN (Amazon CloudFront) js, css Dynamic HTTPS *.ru Static HTTPS *.ru CDN (CDNvideo) js, css images (clients) local cache (APC) control cache: memcached mysqld master-master replication mysqld control cache: memcached Web 2 local cache (APC)

Организация системы мониторинга Лучше – стандартные решения (Nagios, Zabbix и т.п.), а не самописные. Дежурная смена и/или мгновенные уведомления. Мониторить – всё. Но – аккуратно. Тысячи уведомлений будут бесполезны. Автоматизация типовых реакций. Мониторить систему мониторинга. В идеальном мире – распределенная система мониторинга.

Мониторинг «железа» Рейды S.M.A.R.T. – диск возможно скоро «умрет» Утилиты вендора – внутренние аппаратные тесты Имеем «запчасти» (блоки питания, вентиляторы …) или знаем где их быстро найти Периодическое тестирование железа в оффлайне

Мониторинг сети Загрузка канала Потери пакетов Связность узлов

Мониторинг операционной системы Место на дисках Очередь выполнения Размер и использование swap И т.д.

Тесты критичного софта Для критичного софта: считаем число процессов, объем RSS, %CPU, process system/user time

Тесты БД Пример для MySQL

Мониторинг нетипичных характеристик Наличие бэкапов Срок делегирования доменов Срок действия SSL сертификатов Баланс у провайдера смс-уведомлений

Мониторинг веб-приложения Лог работы скрипта (>) – обновился за N часов Лог ошибок работы скрипта (2>) – должен быть пуст

Делегирование домена Оборот за 2012 год - $379 млн. До суток простоя – более $1 млн.

SSL сертификаты Чаще всего по HTTPS работает не весь сайт, а отдельные разделы Проэкспайрившийся SSL сертификат можно заметить не сразу При этом закрыты наиболее критичные разделы (корзина, авторизация и т.п.)

Уведомления – как у нас Cкрипт, опрашивающий страницу «Problems» Шлем «дайджест» проблем, а не по одному сообщению на каждое событие Несколько уровней критичности событий Разные списки адресатов на разные события Повтор (через 15 минут, через 2 часа), чтобы не «потерять» уведомление ОК – если все стало хорошо

Автоматизация типовых реакций Рост / падение LA – автоматическое масштабирование вверх / вниз Автоматический рестарт «сбойных» сервисов Автоматическое «удаление» проблемных машин Автоматическое восстановление репликации Автоматическое переключение траффика в случае аварии на уровне целого ДЦ

event handler # LA on the server define service{ use local-service host_name ec compute-1.amazonaws.com service_description Current Load check_command check_nrpe_1arg!check_load! event_handler restart_phpfpms } define command{ command_name restart_phpfpms command_line /usr/lib64/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c restart_phpfpm }

Если нет админа… Внешние системы: Яндекс.Метрика И т.д. Зачастую можно найти бесплатные варианты. Вы быстро узнаете об отказах, но не будете знать, где они произошли и почему.

Мониторим: Доступность и работоспособность сайта с фиксацией времени простоя и вычислением убытков Истечение срока действия: Домена SSL-сертификата Срок активности поддержки и обновлений лицензионного ключа Push-уведомления в мобильное приложение о недоступности и медленной загрузке сайта Инспектор сайта Облачный сервис по мониторингу

Аналитика Видим, что было Предвидим, что будет Улавливаем тренды Планируем мощности железа Сравниваем настройки софта Веб-система перестает быть черным ящиком, видно ее развитие с течением времени

Аналитика

Аналитика - MySQL Следите за числом запросов и коннектов в БД

Аналитика - MySQL Кэш запросов иногда эффективнее отключить

Аналитика - MySQL Медленные запросы – часто признак проблемы

«Живая» система – много небольших запросов mysql> SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME; | time | count | total | | | 0 | | | | 2011 | | | | | | | | 4624 | | | | 2994 | | | | 200 | | | | 33 | | | | 1 | | | | 0 | | | | 0 | | | | 0 | | | | 0 | | | | 0 | | | TOO LONG | 0 | TOO LONG | rows in set (0.00 sec)

Аналитика - MySQL Одиночные медленные запросы отлавливаются просто. Сложнее мониторить общее состояние системы с большим количеством относительно быстрых запросов.

Если оставить все «по умолчанию»? По умолчанию MaxClients в Apache 2.x – 256 Если PHP может занять 64 Мб (на самом деле – см. memory_limit в php.ini) – весь веб-свервер может занять 16 Гб RAM 256 потенциальных коннектов к MySQL Память для одного коннекта: read_buffer_size + read_rnd_buffer_size + sort_buffer_size + thread_stack + join_buffer_size swap, OOM, деградация производительности всей системы

Аналитика Память Apache MaxClients MySQL buffers … Нужно «прикинуть» максимальный расход памяти в приложениях и следить за ней

Аналитика Уход в swap. На графике машина - зависла. Скорость работы с диском на несколько порядков ниже. Нужно стараться избегать своппинга.

Аналитика Дисковая подсистема

Аналитика Сеть

Аналитика memcached

Аналитика – со стороны пользователя Гистограммы распределения времени хитов, памяти, кодам ответа и т.п. – из логов (awk-скрипт), pinba или других инструментов Мало знать «среднюю температуру по больнице» и мониторить только главную страницу сайта

Действия при аварии Нужно быстро понять – где и как починить Смотрим срабатывание тестов nagios – часто единственный источник информации Смотрим уведомления от nagios Смотрим логи. Держим заготовленные скипты-парсеры логов на поиск ошибок. Смотрим графики munin Если получается, запускаем инструменты поиска узких мест

Поиск «узких» мест Apache /server-status Включенные логи медленных запросов php-fpm, nginx, apache, mysql

Поиск узких мест Pinba, XDebug, XHProf

«Здоровый» сайт Сайт всегда доступен для посетителей Вы оперативно узнаете о любых проблемах и имеете план их решения Аналитические данные позволяют прогнозировать, где могут появиться «узкие» места Вы умеете оценивать комфорт пользователей в реальных «цифрах»

Спасибо за внимание! Вопросы? Александр Демидов