Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
25.11.2019, 11:11
|
|||
|---|---|---|---|
Диагностика нехватки аппаратных ресурсов для БД на виртуалке |
|||
|
#18+
Коллеги, всем добрый день. В очередной раз возникли проблемы в БД с производительностью. Не конкретный проблемный запрос. Просто есть у нас один постоянно работающий процесс - он как индикатор появляющихся проблем. Объем данных, который обрабатывается за час, стал уменьшаться. В день данных приходит больше, чем обрабатывается. Вместе с этим увидел, что в базе за последние 2 месяца вырос тип ожидания WRITELOG. Оптимизировал все "дыры" в процессе-индикаторе, покопал запросы, оказывающие наибольшую нагрузку на io-систему, точечно построил индексы по ключевым процессам. В общем, я не наблюдаю каких-то проблем в базе(какой-то запрос\запросы тормозит\стал хуже работать), но наблюдаю факт(просто все стало немного хуже работать), что нагрузка на диск повышенная. Это подтверждает диагностика в системном мониторе Windows: средняя длина очереди диска высокая. Вопросы: 1) может ли быть, что дело не в MS SQL, а повысилась нагрузка на хранилище, которое общее для многих виртуалок? 2) Как можно это гарантированно диагностировать\подтвердить для аргументации начальству\админу? p.s. планируем апгрейд MS SQL на новую версию с переходом на новый win-сервер, который будет на другом хранилище. Если, скажем так, проблема в хранилище, может как-то форсирую более скорый переход. --- Проходя мимо разложенных граблей, ты теряешь драгоценный опыт. (с) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.11.2019, 11:33
|
|||
|---|---|---|---|
Диагностика нехватки аппаратных ресурсов для БД на виртуалке |
|||
|
#18+
Megabyte Вместе с этим увидел, что в базе за последние 2 месяца вырос тип ожидания WRITELOG. у нас такое было. вряд ли ваш случай. но все же: у них тут свой "запускатель" джобов. в нем есть обязательный таймаут. и подчас он "срубает" то, что просто не влезло в их таймаут, т.е. плохо рассчитан таймаут(его выставили в 2016 году), объемы возросли, вместо 20 минут что-то теперь выполняется 21 и что они делают? срубают джоб. а все в транзакции. и идет роллбэк. ну вот и выросло ожидание WRITELOG. они потом повторяют неуспешные джобы, снова что-то выполняется на 99%, его срубают по таймауту, роллбэк снова гадит в лог, и так по кругу. поправили таймауты, WRITELOG ушел из ожиданий. модель простая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.11.2019, 11:37
|
|||
|---|---|---|---|
Диагностика нехватки аппаратных ресурсов для БД на виртуалке |
|||
|
#18+
кстати, у вас какая модель? на прежнем месте работы было такое: модель тоже простая, ночная загрузка вдруг стала в 2 раза дольше. все потому, что она стала пересекаться с полным бэкапом. данных больше, бэкап идет дольше, пока идет бэкап все логируется полностью даже в простой модели. ну и полез все тот же WRITELOG, т.к. все select into стали полностью логироваться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.11.2019, 12:20
|
|||
|---|---|---|---|
Диагностика нехватки аппаратных ресурсов для БД на виртуалке |
|||
|
#18+
Все джобы я контролирую. В каждой итерации запускается обработка 1000 записей. В нормальное время это гарантировано отрабатывало за 2 минуты. Сейчас за 8. Ничего не срубается автоматом. По всем большим таблицам есть большинство необходимых индексов. По многим большим таблицам старые данные перенесены в лог, за исключением одной много где используемой. Там была настроена архивация(переброска данных в архивную БД) конкретного кол-ва записей. А объем новых данных за сутки вырос. Работа с таблицей не самая оптимальная, к сожалению, но я не все запросы могу исправить на данный момент. А юзается она очень сильно, через многие наши процессы проходит, в том числе и через проблемный. В итоге при норме 10млн там сейчас 28млн. Это моя последняя надежда, что проблема в БД. :) Пока еще не решил ее, руки не дошли. Модель полная, т.к. у нас зеркалирование. Оно работает только для полной модели. Бэкапы ночью делаются, да. Но в общем данные по проблемному процессу за день как раз ночью дозагружаются за сутки, т.к. нагрузка на БД в целом ниже, даже с бэкапами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.11.2019, 13:04
|
|||
|---|---|---|---|
Диагностика нехватки аппаратных ресурсов для БД на виртуалке |
|||
|
#18+
Megabyte В каждой итерации запускается обработка 1000 записей. В нормальное время это гарантировано отрабатывало за 2 минуты. Сейчас за 8. посмотрите конкретные ожидания (не статистику всех ожиданий) в течение этих 8 минут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.11.2019, 13:38
|
|||
|---|---|---|---|
Диагностика нехватки аппаратных ресурсов для БД на виртуалке |
|||
|
#18+
Yasha123 Megabyte В каждой итерации запускается обработка 1000 записей. В нормальное время это гарантировано отрабатывало за 2 минуты. Сейчас за 8. посмотрите конкретные ожидания (не статистику всех ожиданий) в течение этих 8 минут Спасибо, попробую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.11.2019, 23:30
|
|||
|---|---|---|---|
Диагностика нехватки аппаратных ресурсов для БД на виртуалке |
|||
|
#18+
Megabyte, что-то у в вашем рассказе не сходится. То Вы наблюдаете как факт, что все стало НЕМНОГО хуже работать, то вместо 2мин аж 8 - в 4 раза хуже. Это не немного, это где-то что-то серьезно слетело. Мне кажется Вам стоит покопаться не в тяжелых запросах, а в легких, но частых. У Вас хоть какая-то мониторинговая система есть (на ДБ, на Виртуалке, на дисках)? По хорошему все это должно быть, и тогда с доказательствами начальству проблем не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.11.2019, 09:20
|
|||
|---|---|---|---|
Диагностика нехватки аппаратных ресурсов для БД на виртуалке |
|||
|
#18+
Yasha123 ночная загрузка вдруг стала в 2 раза дольше. все потому, что она стала пересекаться с полным бэкапом. Это очень, очень плохой сценарий, конечно. Особенно когда заявлены RPO/RTO, и в рамках этих заявленных значений ты отрабатываешь DR-план. И такой бекап ой как долго разворачиваться будет - транзакции будут все накатываться и накатываться, а если во время процедуры бекапа еще и факты перегружались в DWH - все, - пиши пропало на n-часов! Вот поэтому так важно время от времени тестить DR-процедуры и всякие симуляции rollback'а устраивать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.11.2019, 11:03
|
|||
|---|---|---|---|
Диагностика нехватки аппаратных ресурсов для БД на виртуалке |
|||
|
#18+
Idol_111 Megabyte, 1) что-то у в вашем рассказе не сходится. То Вы наблюдаете как факт, что все стало НЕМНОГО хуже работать, то вместо 2мин аж 8 - в 4 раза хуже. Это не немного, это где-то что-то серьезно слетело. 2) Мне кажется Вам стоит покопаться не в тяжелых запросах, а в легких, но частых. 3) У Вас хоть какая-то мониторинговая система есть (на ДБ, на Виртуалке, на дисках)? По хорошему все это должно быть, и тогда с доказательствами начальству проблем не будет. 1) В данном случае я именно про всю БД в целом писал. Конкретный индикаторный процесс стал сильно хуже, БД в целом работает немного хуже. Других тормозов нет в системе, все штатно работает без заметных задержек. 2) Да все смотрю. 3) В БД мониторю проблемы через системные представления. Ну есть еще всякие алерты по стандартным проблемам вроде долго работающих транзакций и прочее. Если проблема в БД, я ее всегда нахожу, по крайней мере раньше находил. :) По виртуалке, дискам и прочему железу я, честно, не спец. Да и за это у нас сисадмин отвечает. Мне задач по БД с головой хватает. Я лишь запускал системный монитор машины, где стоит сервер БД, там есть стандартный счетчик производительности windows. По нему лишь увидел подтверждение повышенной нагрузки на дисковую подсистему. Но это лишь фиксатор проблемы. Если порекомендуете систему мониторинга конкретную, я пну начальство и админа рассмотреть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.11.2019, 11:15
|
|||
|---|---|---|---|
Диагностика нехватки аппаратных ресурсов для БД на виртуалке |
|||
|
#18+
[quot Megabyte#22025316] Idol_111 Megabyte, Я лишь запускал системный монитор машины, где стоит сервер БД А перегружать сервер пробовали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.11.2019, 11:22
|
|||
|---|---|---|---|
|
|||
Диагностика нехватки аппаратных ресурсов для БД на виртуалке |
|||
|
#18+
Megabyte, найдите документ по SQL best practices виртуализации и ЗАСТАВЬТЕ админа настроить всё по этому документу. Иначе ваш сервер будет грязь месить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.11.2019, 11:26
|
|||
|---|---|---|---|
Диагностика нехватки аппаратных ресурсов для БД на виртуалке |
|||
|
#18+
[quot Massa52#22025342] Megabyte пропущено... А перегружать сервер пробовали? Недавно перегружали, неделю назад где-то, правда не весь сервер, а службу MS SQL. Но как бы это к чему вообще, поясните?) Владислав Колосов Megabyte, найдите документ по SQL best practices виртуализации и ЗАСТАВЬТЕ админа настроить всё по этому документу. Иначе ваш сервер будет грязь месить. Спасибо, поищу, сам поизучаю, как минимум, для общего развития. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.11.2019, 11:32
|
|||
|---|---|---|---|
|
|||
Диагностика нехватки аппаратных ресурсов для БД на виртуалке |
|||
|
#18+
Megabyte, надо иметь в виду, что задача админа ВМ - сшить из одной шкуры семь шапок, и победить его крайне сложно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.11.2019, 11:38
|
|||
|---|---|---|---|
Диагностика нехватки аппаратных ресурсов для БД на виртуалке |
|||
|
#18+
[quot Megabyte#22025360] Massa52 Недавно перегружали, неделю назад где-то, правда не весь сервер, а службу MS SQL. Но как бы это к чему вообще, поясните?) Чтобы убедиться, что именно в SQL проблема. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.11.2019, 01:21
|
|||
|---|---|---|---|
Диагностика нехватки аппаратных ресурсов для БД на виртуалке |
|||
|
#18+
Megabyte, Мониторинговая система в первую очередь это история, а не только текущее состояние. Как я понял, ее нет. Простейший и вполне себе эффективный (и бесплатный) способ - Data Collection. Ну и Query Store полезная вещь. У любой виртуальной системы есть мониторинг основных параметров (ну конечно если его только намеренно не вырубили). Если ваши сервера крутятся на виртуале, Вам необходимо знать основы этой системы. Кстати, обратите внимание как настороенна память для SQL сервера на виртуальном уровне. По хорошему SQL сервер не должен делиться своей памятью, по умолчанию это не так. Отсюда и проблемы с чтением дисков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.11.2019, 10:04
|
|||
|---|---|---|---|
Диагностика нехватки аппаратных ресурсов для БД на виртуалке |
|||
|
#18+
Владислав Колосов Megabyte, надо иметь в виду, что задача админа ВМ - сшить из одной шкуры семь шапок, и победить его крайне сложно. Например "параллельные" ВМ могут в это время дико поедать винт. У нас так почта ложилась. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.11.2019, 13:09
|
|||
|---|---|---|---|
Диагностика нехватки аппаратных ресурсов для БД на виртуалке |
|||
|
#18+
Idol_111 Megabyte, Мониторинговая система в первую очередь это история, а не только текущее состояние. Что сделал сам по базе давно: 1) Есть история изменения типов ожиданий(в %). Собственно по ней я и определил, что сильно вырос WRITELOG. Последние 3 года впереди были другие типы ожиданий. 2) Есть история показателей среднего времени чтения и записи по файлам БД. Но это я про БД. Idol_111 У любой виртуальной системы есть мониторинг основных параметров (ну конечно если его только намеренно не вырубили). Если ваши сервера крутятся на виртуале, Вам необходимо знать основы этой системы. Кстати, обратите внимание как настороенна память для SQL сервера на виртуальном уровне. По хорошему SQL сервер не должен делиться своей памятью, по умолчанию это не так. Отсюда и проблемы с чтением дисков. Про какую-либо историю по данным виртуального хранилища не в курсе, но скорее всего, да, ее нет. Но это не мое поле деятельности. :( Понимаю, что надо самому разбираться, чтоб аргументировать изменения по виртуальным системам. В процессе изучения. Насчет памяти. Попробую выяснить этот момент.Возможно как-то этот момент зафиксировать на сервере через скрипт? Мне казалось, вот выделили серверу MS SQL столько-то памяти, столько он и юзает(max server memory настроено). Поясните, проблема может быть на уровне ms sql vs виртуалка, на которой он стоит ms sql? На виртуалке с MS SQL больше ничего не стоит, кроме ОС. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.11.2019, 13:18
|
|||
|---|---|---|---|
Диагностика нехватки аппаратных ресурсов для БД на виртуалке |
|||
|
#18+
столько времени уже прошло, почему вы никак не посмотрите на sys.dm_os_waiting_tasks во время выполнения того, что теперь стало "8 минут"? за 8 минут можно и сто раз посмотреть, чего именно стала ждать "обработка 1000 записей" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.11.2019, 17:02
|
|||
|---|---|---|---|
Диагностика нехватки аппаратных ресурсов для БД на виртуалке |
|||
|
#18+
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 записей. В редких случаях они пересекаются на вставку\обновление. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.11.2019, 17:16
|
|||
|---|---|---|---|
Диагностика нехватки аппаратных ресурсов для БД на виртуалке |
|||
|
#18+
Megabyte, зеркало синхронное? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.11.2019, 21:15
|
|||
|---|---|---|---|
Диагностика нехватки аппаратных ресурсов для БД на виртуалке |
|||
|
#18+
Yasha123 Megabyte, зеркало синхронное? Да. Тоже подумывал, что может проблема в зеркалировании. Потому как на другом не главном сервере сталкивались с этим. Зеркальный сервер был построен на более медленном хранилище, как выяснилось путем тестов. Отключили зеркало, проблемы на основном исчезли. p.s. Вечером\ночью проблемный процесс отрабатывает быстрее, т.к. общая нагрузка на БД существенно ниже. При этом стал сильно проседать при бэкапировании, чего раньше не наблюдалось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=46&mobile=1&tid=1686870]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
86ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
71ms |
get tp. blocked users: |
2ms |
| others: | 243ms |
| total: | 454ms |

| 0 / 0 |
