powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Диагностика нехватки аппаратных ресурсов для БД на виртуалке
22 сообщений из 22, страница 1 из 1
Диагностика нехватки аппаратных ресурсов для БД на виртуалке
    #39893807
Фотография Megabyte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги, всем добрый день.

В очередной раз возникли проблемы в БД с производительностью. Не конкретный проблемный запрос. Просто есть у нас один постоянно работающий процесс - он как индикатор появляющихся проблем. Объем данных, который обрабатывается за час, стал уменьшаться. В день данных приходит больше, чем обрабатывается.
Вместе с этим увидел, что в базе за последние 2 месяца вырос тип ожидания WRITELOG.
Оптимизировал все "дыры" в процессе-индикаторе, покопал запросы, оказывающие наибольшую нагрузку на io-систему, точечно построил индексы по ключевым процессам. В общем, я не наблюдаю каких-то проблем в базе(какой-то запрос\запросы тормозит\стал хуже работать), но наблюдаю факт(просто все стало немного хуже работать), что нагрузка на диск повышенная. Это подтверждает диагностика в системном мониторе Windows: средняя длина очереди диска высокая.

Вопросы:
1) может ли быть, что дело не в MS SQL, а повысилась нагрузка на хранилище, которое общее для многих виртуалок?
2) Как можно это гарантированно диагностировать\подтвердить для аргументации начальству\админу?

p.s. планируем апгрейд MS SQL на новую версию с переходом на новый win-сервер, который будет на другом хранилище. Если, скажем так, проблема в хранилище, может как-то форсирую более скорый переход.
---
Проходя мимо разложенных граблей, ты теряешь драгоценный опыт. (с)
...
Рейтинг: 0 / 0
Диагностика нехватки аппаратных ресурсов для БД на виртуалке
    #39893821
Фотография Yasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Megabyte

Вместе с этим увидел, что в базе за последние 2 месяца вырос тип ожидания WRITELOG.

у нас такое было.
вряд ли ваш случай. но все же:
у них тут свой "запускатель" джобов.
в нем есть обязательный таймаут.
и подчас он "срубает" то, что просто не влезло в их таймаут,
т.е. плохо рассчитан таймаут(его выставили в 2016 году),
объемы возросли, вместо 20 минут что-то теперь выполняется 21 и что они делают?
срубают джоб.
а все в транзакции.
и идет роллбэк.
ну вот и выросло ожидание WRITELOG.
они потом повторяют неуспешные джобы,
снова что-то выполняется на 99%, его срубают по таймауту,
роллбэк снова гадит в лог, и так по кругу.
поправили таймауты, WRITELOG ушел из ожиданий.
модель простая.
...
Рейтинг: 0 / 0
Диагностика нехватки аппаратных ресурсов для БД на виртуалке
    #39893828
Фотография Yasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати, у вас какая модель?

на прежнем месте работы было такое:
модель тоже простая, ночная загрузка вдруг стала в 2 раза дольше.
все потому, что она стала пересекаться с полным бэкапом.
данных больше, бэкап идет дольше,
пока идет бэкап все логируется полностью даже в простой модели.
ну и полез все тот же WRITELOG,
т.к. все select into стали полностью логироваться
...
Рейтинг: 0 / 0
Диагностика нехватки аппаратных ресурсов для БД на виртуалке
    #39893857
Фотография Megabyte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все джобы я контролирую. В каждой итерации запускается обработка 1000 записей. В нормальное время это гарантировано отрабатывало за 2 минуты. Сейчас за 8. Ничего не срубается автоматом.
По всем большим таблицам есть большинство необходимых индексов. По многим большим таблицам старые данные перенесены в лог, за исключением одной много где используемой. Там была настроена архивация(переброска данных в архивную БД) конкретного кол-ва записей. А объем новых данных за сутки вырос. Работа с таблицей не самая оптимальная, к сожалению, но я не все запросы могу исправить на данный момент. А юзается она очень сильно, через многие наши процессы проходит, в том числе и через проблемный. В итоге при норме 10млн там сейчас 28млн. Это моя последняя надежда, что проблема в БД. :) Пока еще не решил ее, руки не дошли.

Модель полная, т.к. у нас зеркалирование. Оно работает только для полной модели.

Бэкапы ночью делаются, да. Но в общем данные по проблемному процессу за день как раз ночью дозагружаются за сутки, т.к. нагрузка на БД в целом ниже, даже с бэкапами.
...
Рейтинг: 0 / 0
Диагностика нехватки аппаратных ресурсов для БД на виртуалке
    #39893897
Фотография Yasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Megabyte
В каждой итерации запускается обработка 1000 записей. В нормальное время это гарантировано отрабатывало за 2 минуты. Сейчас за 8.

посмотрите конкретные ожидания (не статистику всех ожиданий)
в течение этих 8 минут
...
Рейтинг: 0 / 0
Диагностика нехватки аппаратных ресурсов для БД на виртуалке
    #39893927
Фотография Megabyte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yasha123
Megabyte
В каждой итерации запускается обработка 1000 записей. В нормальное время это гарантировано отрабатывало за 2 минуты. Сейчас за 8.

посмотрите конкретные ожидания (не статистику всех ожиданий)
в течение этих 8 минут

Спасибо, попробую.
...
Рейтинг: 0 / 0
Диагностика нехватки аппаратных ресурсов для БД на виртуалке
    #39894207
Idol_111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Megabyte,

что-то у в вашем рассказе не сходится. То Вы наблюдаете как факт, что все стало НЕМНОГО хуже работать, то вместо 2мин аж 8 - в 4 раза хуже. Это не немного, это где-то что-то серьезно слетело.

Мне кажется Вам стоит покопаться не в тяжелых запросах, а в легких, но частых.

У Вас хоть какая-то мониторинговая система есть (на ДБ, на Виртуалке, на дисках)?

По хорошему все это должно быть, и тогда с доказательствами начальству проблем не будет.
...
Рейтинг: 0 / 0
Диагностика нехватки аппаратных ресурсов для БД на виртуалке
    #39894264
Фотография PsyMisha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yasha123

ночная загрузка вдруг стала в 2 раза дольше.
все потому, что она стала пересекаться с полным бэкапом.


Это очень, очень плохой сценарий, конечно. Особенно когда заявлены RPO/RTO, и в рамках этих заявленных значений ты отрабатываешь DR-план. И такой бекап ой как долго разворачиваться будет - транзакции будут все накатываться и накатываться, а если во время процедуры бекапа еще и факты перегружались в DWH - все, - пиши пропало на n-часов!
Вот поэтому так важно время от времени тестить DR-процедуры и всякие симуляции rollback'а устраивать :)
...
Рейтинг: 0 / 0
Диагностика нехватки аппаратных ресурсов для БД на виртуалке
    #39894308
Фотография Megabyte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Idol_111
Megabyte,

1) что-то у в вашем рассказе не сходится. То Вы наблюдаете как факт, что все стало НЕМНОГО хуже работать, то вместо 2мин аж 8 - в 4 раза хуже. Это не немного, это где-то что-то серьезно слетело.

2) Мне кажется Вам стоит покопаться не в тяжелых запросах, а в легких, но частых.

3) У Вас хоть какая-то мониторинговая система есть (на ДБ, на Виртуалке, на дисках)?

По хорошему все это должно быть, и тогда с доказательствами начальству проблем не будет.

1) В данном случае я именно про всю БД в целом писал. Конкретный индикаторный процесс стал сильно хуже, БД в целом работает немного хуже. Других тормозов нет в системе, все штатно работает без заметных задержек.

2) Да все смотрю.

3) В БД мониторю проблемы через системные представления. Ну есть еще всякие алерты по стандартным проблемам вроде долго работающих транзакций и прочее. Если проблема в БД, я ее всегда нахожу, по крайней мере раньше находил. :)

По виртуалке, дискам и прочему железу я, честно, не спец. Да и за это у нас сисадмин отвечает. Мне задач по БД с головой хватает. Я лишь запускал системный монитор машины, где стоит сервер БД, там есть стандартный счетчик производительности windows. По нему лишь увидел подтверждение повышенной нагрузки на дисковую подсистему.
Но это лишь фиксатор проблемы. Если порекомендуете систему мониторинга конкретную, я пну начальство и админа рассмотреть.
...
Рейтинг: 0 / 0
Диагностика нехватки аппаратных ресурсов для БД на виртуалке
    #39894320
Massa52
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Megabyte#22025316]
Idol_111
Megabyte,
Я лишь запускал системный монитор машины, где стоит сервер БД

А перегружать сервер пробовали?
...
Рейтинг: 0 / 0
Диагностика нехватки аппаратных ресурсов для БД на виртуалке
    #39894326
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Megabyte,

найдите документ по SQL best practices виртуализации и ЗАСТАВЬТЕ админа настроить всё по этому документу. Иначе ваш сервер будет грязь месить.
...
Рейтинг: 0 / 0
Диагностика нехватки аппаратных ресурсов для БД на виртуалке
    #39894333
Фотография Megabyte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Massa52#22025342]
Megabyte
пропущено...

А перегружать сервер пробовали?

Недавно перегружали, неделю назад где-то, правда не весь сервер, а службу MS SQL. Но как бы это к чему вообще, поясните?)

Владислав Колосов
Megabyte,

найдите документ по SQL best practices виртуализации и ЗАСТАВЬТЕ админа настроить всё по этому документу. Иначе ваш сервер будет грязь месить.

Спасибо, поищу, сам поизучаю, как минимум, для общего развития.
...
Рейтинг: 0 / 0
Диагностика нехватки аппаратных ресурсов для БД на виртуалке
    #39894341
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Megabyte,

надо иметь в виду, что задача админа ВМ - сшить из одной шкуры семь шапок, и победить его крайне сложно.
...
Рейтинг: 0 / 0
Диагностика нехватки аппаратных ресурсов для БД на виртуалке
    #39894350
Massa52
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Megabyte#22025360]
Massa52


Недавно перегружали, неделю назад где-то, правда не весь сервер, а службу MS SQL. Но как бы это к чему вообще, поясните?)

Чтобы убедиться, что именно в SQL проблема.
...
Рейтинг: 0 / 0
Диагностика нехватки аппаратных ресурсов для БД на виртуалке
    #39895314
Idol_111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Megabyte,

Мониторинговая система в первую очередь это история, а не только текущее состояние.
Как я понял, ее нет.
Простейший и вполне себе эффективный (и бесплатный) способ - Data Collection. Ну и Query Store полезная вещь.

У любой виртуальной системы есть мониторинг основных параметров (ну конечно если его только намеренно не вырубили).

Если ваши сервера крутятся на виртуале, Вам необходимо знать основы этой системы.
Кстати, обратите внимание как настороенна память для SQL сервера на виртуальном уровне. По хорошему SQL сервер не должен делиться своей памятью, по умолчанию это не так. Отсюда и проблемы с чтением дисков.
...
Рейтинг: 0 / 0
Диагностика нехватки аппаратных ресурсов для БД на виртуалке
    #39895392
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов
Megabyte,

надо иметь в виду, что задача админа ВМ - сшить из одной шкуры семь шапок, и победить его крайне сложно.
+1.
Например "параллельные" ВМ могут в это время дико поедать винт.
У нас так почта ложилась. :)
...
Рейтинг: 0 / 0
Диагностика нехватки аппаратных ресурсов для БД на виртуалке
    #39895541
Фотография Megabyte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Idol_111
Megabyte,

Мониторинговая система в первую очередь это история, а не только текущее состояние.

Что сделал сам по базе давно:
1) Есть история изменения типов ожиданий(в %). Собственно по ней я и определил, что сильно вырос WRITELOG. Последние 3 года впереди были другие типы ожиданий.

2) Есть история показателей среднего времени чтения и записи по файлам БД.

Но это я про БД.

Idol_111

У любой виртуальной системы есть мониторинг основных параметров (ну конечно если его только намеренно не вырубили).

Если ваши сервера крутятся на виртуале, Вам необходимо знать основы этой системы.
Кстати, обратите внимание как настороенна память для SQL сервера на виртуальном уровне. По хорошему SQL сервер не должен делиться своей памятью, по умолчанию это не так. Отсюда и проблемы с чтением дисков.

Про какую-либо историю по данным виртуального хранилища не в курсе, но скорее всего, да, ее нет. Но это не мое поле деятельности. :(
Понимаю, что надо самому разбираться, чтоб аргументировать изменения по виртуальным системам. В процессе изучения.

Насчет памяти. Попробую выяснить этот момент.Возможно как-то этот момент зафиксировать на сервере через скрипт?
Мне казалось, вот выделили серверу MS SQL столько-то памяти, столько он и юзает(max server memory настроено). Поясните, проблема может быть на уровне ms sql vs виртуалка, на которой он стоит ms sql? На виртуалке с MS SQL больше ничего не стоит, кроме ОС.
...
Рейтинг: 0 / 0
Диагностика нехватки аппаратных ресурсов для БД на виртуалке
    #39895554
Фотография Yasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
столько времени уже прошло,
почему вы никак не посмотрите на sys.dm_os_waiting_tasks
во время выполнения того, что теперь стало "8 минут"?
за 8 минут можно и сто раз посмотреть, чего именно стала ждать "обработка 1000 записей"
...
Рейтинг: 0 / 0
Диагностика нехватки аппаратных ресурсов для БД на виртуалке
    #39895809
Фотография Megabyte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yasha123
столько времени уже прошло,
почему вы никак не посмотрите на sys.dm_os_waiting_tasks
во время выполнения того, что теперь стало "8 минут"?
за 8 минут можно и сто раз посмотреть, чего именно стала ждать "обработка 1000 записей"

Понаблюдал. Типы ожиданий: чаще WRITELOG, DBMIRROR_DBM_EVENT, изредка PAGEIOLATCH_SH и IO_COMPLETION.
Впрочем типы ожидания и потребляемые ресурсы я итак видел через нашу процу - монитор текущих процессов.
Поле blocking_session_id вообще никогда не заполнено. resource_description заполнено очень редко. У нас там 2 джоба параллельно работают: один делает чуть больше вычислений(доп. шаг джоба, раньше было 2 доп. шага) и за итерацию обрабатывает 1000 записей, второй - делает чуть меньше вычислений и за итерацию 50 записей. В редких случаях они пересекаются на вставку\обновление.
...
Рейтинг: 0 / 0
Диагностика нехватки аппаратных ресурсов для БД на виртуалке
    #39895816
Фотография Yasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Megabyte,
зеркало синхронное?
...
Рейтинг: 0 / 0
Диагностика нехватки аппаратных ресурсов для БД на виртуалке
    #39895947
Фотография Megabyte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yasha123
Megabyte,
зеркало синхронное?

Да. Тоже подумывал, что может проблема в зеркалировании. Потому как на другом не главном сервере сталкивались с этим. Зеркальный сервер был построен на более медленном хранилище, как выяснилось путем тестов. Отключили зеркало, проблемы на основном исчезли.

p.s. Вечером\ночью проблемный процесс отрабатывает быстрее, т.к. общая нагрузка на БД существенно ниже. При этом стал сильно проседать при бэкапировании, чего раньше не наблюдалось.
...
Рейтинг: 0 / 0
Диагностика нехватки аппаратных ресурсов для БД на виртуалке
    #39896201
Фотография Yasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сделайте асинхронное, хотя бы DBMIRROR_DBM_EVENT уйдет
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Диагностика нехватки аппаратных ресурсов для БД на виртуалке
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]