Мониторинг здоровья MS SQL Server

25.12.18

База данных - HighLoad оптимизация

Описывается очередной изобретенный "велосипед" для мониторинга здоровья MS SQL Server, который мы используем в glassdoor.com - втором крупнейшем в США сайте для соискателей работы.

Apache License 2.0

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Мониторинг здоровья MS SQL Server:
.zip 10,07Kb
12
12 Скачать (1 SM) Купить за 1 850 руб.

Думаю, что с понятием статистики ожиданий MS SQL Server знакомо большинство - SQL Server детально отслеживает потребление ресурсов и длительность выполнения внутренних процессов и позволяет пользователю получать кумулятивные значения со времени старта или сброса статистики. 
Хорошее описание есть здесь - https://habr.com/post/216309/

Наш веб-сайт целиком полагается на MS SQL Server, поэтому важно обеспечить бесперебойную работу и максимально быструю реакцию на возможные изменения. 

Во всех серьезных системах мониторинга баз данных есть возможность сбора статистики ожиданий и построение необходимой аналитики. По ряду причин мы не были удовлетворены тем что получаем "из коробки" (основная масса мониторинга\аналитии построена на https://www.appdynamics.com/), поэтому было решено реализовать собственный параллельный процесс сбора и визуализации данных.

Решение состоит из трех частей:
1) SQL Agent Task, которое непрерывно собирает накопленную статистику на каждом сервере. Каждые 15 секунд вычисляется разница между текущей и предыдущей статистикой и записывается в таблицу локальной базы данных (хранимая процедура [Monitor].[CollectWaitStatistics]).
2) Централизованный сервер для сбора статистики со всех серверов и отправки данных в ElasticSearch (три остальных файла).
3) ElasticSearch + Kibana для хранения, анализа и визуализации данных.

Хранимые процедуры и скрипт PowerShell можно скачать в приложенном архиве либо с гитхаба: 
https://github.com/alekseybochkov/publications/blob/master/sql-waits-monitoring/

Как эти данные используются?

У нас нет каких либо средств уведомления о проблемах на основе этих данных. Не все отлонения являются проблемами, а если это проблема, но центральная система мониторинга просигнализирует об этом.

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

Вопросы и комментарии только приветствуются.
Если интересны какие-то определенные моменты из опыта эксплуатации этих баз данных - готов поделится.

См. также

HighLoad оптимизация Технологический журнал Системный администратор Программист Бесплатно (free)

Обсудим поиск и разбор причин длительных серверных вызовов CALL, SCALL.

24.06.2024    5240    ivanov660    12    

56

HighLoad оптимизация Программист Платформа 1С v8.3 Бесплатно (free)

Метод очень медленно работает, когда параметр приемник содержит намного меньше свойств, чем источник.

06.06.2024    9374    Evg-Lylyk    61    

44

HighLoad оптимизация Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Анализ простого плана запроса. Оптимизация нагрузки на ЦП сервера СУБД используя типовые индексы.

13.03.2024    5145    spyke    28    

49

HighLoad оптимизация Программист Платформа 1С v8.3 Бесплатно (free)

Оказывается, в типовых конфигурациях 1С есть, что улучшить!

13.03.2024    7657    vasilev2015    20    

42

HighLoad оптимизация Инструменты администратора БД Системный администратор Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Обработка для простого и удобного анализа настроек, нагрузки и проблем с SQL сервером с упором на использование оного для 1С. Анализ текущих запросов на sql, ожиданий, конвертация запроса в 1С и рекомендации, где может тормозить.

2 стартмани

15.02.2024    12523    245    ZAOSTG    82    

115

HighLoad оптимизация Системный администратор Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Принимать, хранить и анализировать показания счетчиков (метрики) в базе 1С? Почему бы нет? Но это решение быстро привело к проблемам с производительностью при попытках построить какую-то более-менее сложную аналитику. Переход на PostgresSQL только временно решил проблему, т.к. количество записей уже исчислялось десятками миллионов и что-то сложное вычислить на таких объемах за разумное время становилось все сложнее. Кое-что уже практически невозможно. А что будет с производительностью через пару лет - представить страшно. Надо что-то предпринимать! В этой статье поделюсь своим первым опытом применения СУБД Clickhouse от Яндекс. Как работает, что может, как на нее планирую (если планирую) переходить, сравнение скорости работы, оценка производительности через пару лет, пример работы из 1С. Все это приправлено текстами запросов, кодом, алгоритмами выполненных действий и преподнесено вам для ознакомления в этой статье.

1 стартмани

24.01.2024    5733    glassman    18    

40

HighLoad оптимизация Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Встал вопрос: как быстро удалить строки из ТЗ? Рассмотрел пять вариантов реализации этой задачи. Сравнил их друг с другом на разных объёмах данных с разным процентом удаляемых строк. Также сравнил с выгрузкой с отбором по структуре.

09.01.2024    14336    doom2good    49    

71
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. capitan 2510 23.10.18 13:34 Сейчас в теме
А рабочий сервер такой сбор статистики не нагружает ?
2. Aleksey.Bochkov 3683 23.10.18 21:03 Сейчас в теме
(1) Существенной нагрузки этот процесс не создает.
Оставьте свое сообщение