Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
abrashka Member Откуда: Сообщений: 517 |
День добрый! Microsoft SQL Server 2014 (SP2) (KB3171021) - 12.0.5000.0 (X64) Jun 17 2016 19:14:09 Copyright (c) Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.3 <X64> (Build 9600: ) (Hypervisor) На сервере одна база OLTP в FULL Recovery Model размером порядка 300Гб Некоторое время появились проблемы с производительностью, элементарные вещи(например инсерт одной строки), которы обычно занимают милисекунды иногда подвисают и могут продолжаться около 30 секунд. Анализирую трейс, вижу, что все как-будто подвисает на минуты две, а потом, с аналогичной активностью все работает нормально. Сделал неболшую кореляцию между имеющимися данными и обратил внимание на следующее: Каждые 20 минут происходит резервное копирование журнала транзакций средствами Veeam, каждый бекап длится несколько секунд и занимает порядка 1Гб в среднем Я обратил внимание, что во время бекапа и после него подозрительно растет счетчик Pages/Sec пиками по несколько минут. "Зависания" происходет чаще всего именно в эти пики. Хотел бы узнать может ли быть связь между бекапами и зависаниями? На что еще стоит обратить внимание? Приложил график Pages/Sec, бэкабы запусакеются в 00,20 и 40 минут ![]() Спасибо! |
3 май 18, 13:05 [21384161] Ответить | Цитировать Сообщить модератору |
aleksrov Member Откуда: Сообщений: 948 |
abrashka, Так вы и посмотрите чего ваш инсерт ждет 30 сек. Чего гадать та? По счетчику. Shows the rate at which pages are read from or written to disk to resolve hard page faults. This counter is a primary indicator of the kinds of faults that cause system-wide delays. It is the sum of Memory\ Pages Input/sec and Memory\ Pages Output/sec. It is counted in numbers of pages, so it can be compared to other counts of pages, such as Memory\ Page Faults/sec, without conversion. It includes pages retrieved to satisfy faults in the file system cache (usually requested by applications) and noncached mapped memory files Occasional peaks are normal and appear when creating SQL Server database and transaction log backups, restoring databases, importing and exporting data, and performing other complex tasks Один этот счетчик ни о чем не говорит по сути. |
3 май 18, 13:18 [21384212] Ответить | Цитировать Сообщить модератору |
abrashka Member Откуда: Сообщений: 517 |
aleksrov, Чаще всего ждет PAGEIOLATCH_SH в среднем ожидания: WRITELOG- 32% PAGEIOLATCH_SH-22% LCK_M_U-15% PAGEIOLATCH_EX-9% CXPACKET-5% |
3 май 18, 13:52 [21384354] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9646 |
|
||
3 май 18, 14:11 [21384442] Ответить | Цитировать Сообщить модератору |
abrashka Member Откуда: Сообщений: 517 |
invm, Не обращал внимание, обязательно проверю. Но скорее нет, чем да. |
3 май 18, 14:20 [21384477] Ответить | Цитировать Сообщить модератору |
abrashka Member Откуда: Сообщений: 517 |
Проследил, физический файл журнала не изменяется. |
||||
3 май 18, 14:44 [21384585] Ответить | Цитировать Сообщить модератору |
aleksrov Member Откуда: Сообщений: 948 |
abrashka, Подсистема хранения какая? Параллельно с этим инсертом, что еще выполняется? |
3 май 18, 16:10 [21385103] Ответить | Цитировать Сообщить модератору |
aleksrov Member Откуда: Сообщений: 948 |
abrashka, И сколько у вас виртуалок на том же хосте что и SQL? |
3 май 18, 16:20 [21385158] Ответить | Цитировать Сообщить модератору |
aleksrov Member Откуда: Сообщений: 948 |
abrashka, Или у вас он просто включен? Т.е. виртуалка или нет? |
3 май 18, 16:25 [21385186] Ответить | Цитировать Сообщить модератору |
abrashka Member Откуда: Сообщений: 517 |
aleksrov, Что есть подсистема хранения? На сколько я знаю- Диски SSD: System, MDF, LDF, Backups- на четырех разных физических дисках. Параллельно выполняются относительно не сложные запросы по другим таблицам, не связанные с инсертами. Каждый из этих запросов в "мирное" время бежит максимум пару секунд. Когда происходит "подвисание"- все запросы висят около минуты. Судя по количеству reads/writes- выполняются обычные планы. Судя по трейсу CPU у всех запросов во время 'зависания' никакой, а duration огромный. |
3 май 18, 16:27 [21385195] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9646 |
abrashka, Смотрите во время "зависаний" в sys.dm_os_waiting_tasks чего ждут ваши запросы. |
3 май 18, 16:41 [21385265] Ответить | Цитировать Сообщить модератору |
abrashka Member Откуда: Сообщений: 517 |
Еслиб я знал, когда произойдет следующее зависание- то было бы гораздо проще :( Но таких зависаний может быть несколько раз в день по минуте-две, а может и не быть... В течении дня бежит трейс, который отлавливает по duration>3sec и PERFMON, но к сожалению по имеющейся информации не могу понять что приводит к зависанию. В какой-то момент в трейсе вижу, что практически все операции бегут ~30 секунд(в апликации таймаут на 30 секунд). Где-то через минуту сервер постепенно попускает и практически те же запросы бегут 28-25-20-15-...-3 секунды. До очередного зависания. |
||
3 май 18, 17:17 [21385381] Ответить | Цитировать Сообщить модератору |
aleksrov Member Откуда: Сообщений: 948 |
abrashka, Пользуетесь расширенными событиями. У вас по умолчанию запущен system_health который много чего собирает полезного. Ну или можете сами сделать https://www.sqlskills.com/blogs/jonathan/an-xevent-a-day-30-of-31-tracking-session-and-statement-level-waits/ |
3 май 18, 17:46 [21385495] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |