|
Конфликт блокировок при выполнении транзакции. | ☑ | ||
---|---|---|---|---|
0
1976vas
17.02.15
✎
09:02
|
Участилась проблема с блокировками. База большая УПП 1.3, пользователей около 70. Главбух постоянно предъявляет претензии. Описал ей, что причина либо в кривом запросе, либо нагрузке на сеть, либо в мощности сервера, либо в настройках SQL. Ко всему этому не имею доступа, т.к. есть админы и сопровожденец конфы. В мою задачу входит только работа с пользователями и дописание всего внешнего. Вопрос такой, подскажите, пожалуйста, я ничего не упустил? Я так понимаю, что прежде чем задавать такие вопросы мне, мне нужно как минимум передать права на администрирование SQL-сервера, чтобы начать с трассировок. Я прав?
|
|||
66
vde69
25.02.15
✎
16:31
|
(65) у меня были отрицательные опыты с SSD
Танцы с бубном вокруг SSD диска с win-7 я конечно понимаю, что будущее за ними, но я не слежу за ними... придет эра массового внедрения SSD - въеду в тему :) |
|||
67
1976vas
25.02.15
✎
16:41
|
(58) Там в 21 посте "на железной машине (а не на виртуалки) длину очереди к диску, если более 0.5с - то мало, если 5-10с - то афигительно мало" - как узнать длину очереди к диску? У меня память под SQL 9Гигов всего, а крутится Документооборот и УПП.
|
|||
68
Ник второй
25.02.15
✎
16:43
|
(39) Вы про Апдекс, тогда тут вопросов нет, абсолютно согласен.
|
|||
69
vde69
25.02.15
✎
16:45
|
(67) не путай, память на сервере скуль видит то, что ему отдано гипервизором, а гипервизор может имеет всего 1 гиг памяти а остально своп :)
"железная машина" - это гипервизор, все замеры счетчиков винды нужно делать на нем а не на вируальной машине где стоит скуль |
|||
70
1976vas
25.02.15
✎
16:48
|
(69) Своп - это на Линуксе? У меня Win Сервер 2008
|
|||
71
vde69
25.02.15
✎
16:49
|
||||
72
1976vas
25.02.15
✎
16:54
|
(71) Спасибо! Осталось разобраться с монитором производительности показания снимать.
|
|||
73
1976vas
26.02.15
✎
08:30
|
Регламентные задания настроены, но как оказалось не выполнялись, т.к. был отключен SQL Agent.
|
|||
74
vde69
26.02.15
✎
10:00
|
(73) бинго!!!
ну давай теперь после выполнения рег заданий повторяй тест.... уверен результат будет совсем иным... статистику обновляй не реже чем раз в два часа... только лучше подождать пару дней, что-бы планы запросов оптимизировались в несколько итераций, а потом уже тест повторяй... да и про виртуализацию то-же не забывай :) |
|||
75
vde69
26.02.15
✎
10:03
|
и все-же регламентные задания распиши какие и как настроены :)
|
|||
76
1976vas
26.02.15
✎
10:04
|
(74) Спасибо, буду пробовать. Какой интервал в замерах лучше ставить? И результаты за 8 минут, которые у меня, насколько показательны? http://savepic.org/6915633.png
|
|||
77
vde69
26.02.15
✎
10:05
|
>>>>Разделение идет, опытный программист сопровождает из франчи, а я на фикси - на подхвате.
теперь ты понимаешь какой это "опытный программист" ??? |
|||
78
vde69
26.02.15
✎
10:08
|
(76) сейчас ничего не делай, дай время скулю несколько раз обновить свою статистику регламентыми заданиями, уверен после этого скорость увелится примерно в 2 раза...
то есть мы нашли явную проблемму, нужно ее устранить и только потом смотреть дальше, это нужно, что-бы проблеммы не наслаивались друг на друга... |
|||
79
1976vas
26.02.15
✎
10:08
|
(75) Раз в день обновление статистики и чистка кэша, раз в неделю дефрагментация индексов и раз в неделю реиндексация таблиц.
Но я перенастрою, статистику и кэш на раз в два часа, дефрагментацию раз в сутки и реиндексацию раз в неделю. (77) Не-не, он администрированием не занимается, ставил SQL наш генеральный директор и админ. |
|||
80
piter3
26.02.15
✎
10:09
|
(79)может лучше на ночь перенести
|
|||
81
1976vas
26.02.15
✎
10:10
|
(78) Понятно, спасибо, сегодня вечером настроим регламентные задания.
(80) Что на ночь перенести, какое задание? |
|||
82
piter3
26.02.15
✎
10:11
|
(81)все.
|
|||
83
vde69
26.02.15
✎
10:11
|
(79) обновление статистики поставьте раз в час или два, не бойтесь тормозов не будет.
дефрагментацию индексов ставь раз день, что-бы ночью шло. реиндексацию можно так оставить... в понедельник запусти опять мой скрипт.... больше ничего не делай пока ибо надо посмотреть результат... |
|||
84
1976vas
26.02.15
✎
10:13
|
(83) Ок.
(82) Регламент по статистике и кэшу на работу системы почти не влияют, я читал рекомендации делать их почаще. |
|||
85
vde69
26.02.15
✎
10:14
|
а и параллелизм сейчас поставь = 0, а то ты его в 1 вроде ставил?
|
|||
86
1976vas
26.02.15
✎
10:17
|
(85) Да, везде вроде рекомендуют, а был в 0. Еще вопрос перед реиндексацией таблиц желательно делать бэкап?
|
|||
87
1976vas
26.02.15
✎
10:19
|
(85) Я верну в ноль, но что это значит?
|
|||
88
vde69
26.02.15
✎
10:22
|
(86) рекомендую ставить 1 для 7.7 (или для тех кто не умеет настраивать регламент скуля), для 8.х лучше ставить 0...
реиндексация и бекап не как не связаны, даже если реиндексация завершится крахом и после краха сделаем бекап, он будет валидным... бекап связан со шринком, но ты шринк не делаешь в регламенте... |
|||
89
vde69
26.02.15
✎
10:23
|
(87) это значит, что скуль сам определяет степень палалелизма на основании статистики и плана запроса
|
|||
90
vde69
26.02.15
✎
10:24
|
еще совет - перегрузите сервер, для проверки что агент работает, а то опять отвалится поле апдейта очередного....
но это уже к админу :) |
|||
91
1976vas
26.02.15
✎
10:30
|
(90) Хорошо, все сделаю, протестирую в понедельник и отпишусь.
|
|||
92
floody
26.02.15
✎
10:58
|
скулю отдано 9 гигов? а объемы баз какие? если базы большие, то посмотрите счетчики SQL, может ему памяти мало
|
|||
93
1976vas
26.02.15
✎
11:16
|
(92) Две базы, скульные копии размером больше 100 Гигов.
|
|||
94
1976vas
26.02.15
✎
11:19
|
(90) Еще вопрос возник, а на какие базы регламент применять?
|
|||
95
1976vas
26.02.15
✎
11:20
|
В смысле только на рабочие или на системные тоже?
|
|||
96
vde69
26.02.15
✎
11:23
|
(94) на все... даже на тестовые, хуже не будет :)
(92) про память - разумеется мало (и наверняка она в своп у гипервизора уходит), но это будет видно чуть позже, по моим прикидкам у автора в понедельник будет в 2...3 раза быстрее все работать... а это уже не мало .... |
|||
97
1976vas
26.02.15
✎
11:26
|
(96) Хотелось бы ))
Кстати по блокировкам, может кому понадобится нашел такой скрипт
|
|||
98
Rebelx
26.02.15
✎
12:40
|
(20) см. (0)
"Конфликт блокировок при выполнении транзакции" = Дедлок В данном случае повышение производительности не решит проблему, а только сделает вероятность ее возникновения меньше. Т.е. только отложит проблему на будщее |
|||
99
1976vas
26.02.15
✎
12:47
|
(98) Верно, вот здесь хорошо расписано http://habrahabr.ru/post/160485/ Сначала планирую поднять производительность, потом уже углубляться в анализ запросов.
|
|||
100
Rebelx
26.02.15
✎
12:53
|
(99) в данном случае стоит делать наоборот
|
|||
101
1976vas
26.02.15
✎
12:58
|
(100) Все-таки считаю, что чем быстрее выполнится транзакция, тем меньше вероятность блокировок. Я уже писал, что нахожу виновника и мне говорят, что операция закончится минут через пять. Я советую другим подождать 5 минут, потом все начинает работать. Я если бы операция выполнялась 1 минуту или меньше? Там могло и не возникнуть блокировок.
|
|||
102
Rebelx
26.02.15
✎
13:00
|
(101) Возможно, что если поменять две строчки местами - то вообще ошибок не будет
|
|||
103
piter3
26.02.15
✎
13:00
|
лучше сначала пусть админа заставит работать
|
|||
104
1976vas
26.02.15
✎
13:03
|
(103) Не :), надо брать в свои руки, потому, что если "что-то с 1с" админы мне уступают право быть виноватым.
|
|||
105
1976vas
26.02.15
✎
13:06
|
(102) Чтобы найти эти две строчки на стопицот лет учиться и разбираться.
|
|||
106
1976vas
26.02.15
✎
13:06
|
*на - надо
|
|||
107
Гёдза
26.02.15
✎
13:07
|
(98) "Конфликт блокировок при выполнении транзакции" <> Дедлок
|
|||
108
Rebelx
26.02.15
✎
13:08
|
(107) какие еще варианты?
|
|||
109
1976vas
26.02.15
✎
13:09
|
(107) Есть конфликт блокировок и конфликт взаимоблокировок?
|
|||
110
Гёдза
26.02.15
✎
13:09
|
"Конфликт ВЗАИМОблокировок при выполнении транзакции" = Дедлок
|
|||
111
Rebelx
26.02.15
✎
13:10
|
(110) ты бредишь
|
|||
112
1976vas
26.02.15
✎
13:14
|
(111) Смотри, я думаю он прав. Конфликт блокировок - это когда одна захватила и не дает, а взаимоблокировок - это петля, когда вторая транзакция стучится к первой, но держит ресурс для ее выполнения, что не дает выполниться первой и освободить ресурсы для второй.
|
|||
113
Rebelx
26.02.15
✎
13:18
|
(112) Конфликт блокировок = взаимоблокировка = дедлок.
Конфликт взаимоблокировок - бред. Когда одна захватила и остальные ждут - это ожидание на блокировке. Как последствие - таймаут, с сообщением "Превышено время ожидания блокировки" |
|||
114
1976vas
26.02.15
✎
13:20
|
(113) Я сейчас только понял, "Превышено время ожидания блокировки" - вот у меня основная ошибка, но я точно помню, что были и взаимоблокировки. Понаблюдаю. Спасибо.
|
|||
115
1976vas
26.02.15
✎
13:33
|
А вообще не знаю, вот ошибки http://savepic.org/6902344.png и http://savepic.org/6890056.png . Но, насколько помню было когда-то и предупреждение именно ВЗАИМОБЛОКИРОВКИ.
|
|||
116
vde69
26.02.15
✎
13:41
|
(98) при всем моем уважении это не всегда так, есть еще отвал ожидания по таймауту, и это нифига не делок....
в полученой статистики дедлоков вообще нет.... только их поиск ... |
|||
117
vde69
26.02.15
✎
13:42
|
(116)+ упс, Вы уже перетерли это :)
|
|||
118
1976vas
26.02.15
✎
13:47
|
(117) Это говорит, что надо внимательней читать предупреждения 1С, а я по невнимательности все в одну кучу мешал, буду внимательней.
|
|||
119
1976vas
27.02.15
✎
08:17
|
Не выполнились регламентные задания, в ошибке "Для программы выполнения пакетов SQL Server необходимо, чтобы были установлены службы Integration Services" и т.д. Думал SQL server и SQL Server Agent только нужны. Читаю...
|
|||
120
1976vas
27.02.15
✎
08:29
|
http://support.microsoft.com/kb/961126 старая версия SQL, надо обновлять.
|
|||
121
vde69
27.02.15
✎
08:38
|
(120) фигней не майся - ставь задачу админу, пусть он ее решает, это не твои траблы...
судя по (119) у Вас никогда регламент не выполнялся :) |
|||
122
1976vas
27.02.15
✎
08:46
|
(121) Никогда, я получил отчет о физических индексах для базы, их вообще нет.
Надо помочь админам, попросили. Не знаю какой пакет качать SQL_Server_2008_RTM_CU3_SNAC или SQL_Server_2008_Cumulative_Update_3 |
|||
123
floody
27.02.15
✎
08:51
|
Конфликт блокировок <> дедлок. Что с вами? Дедлок - неразрешимый конфликт блокировок.
|
|||
124
1976vas
27.02.15
✎
08:53
|
(123) Ну, погнали наши городских :)
|
|||
125
vde69
модератор
27.02.15
✎
08:53
|
(122) не помогай им, счас какой косяк вылезет при апдейте - виноват будешь ты... пусть на админские форумы идут...
уверяю тебя - там можно бяку словить и всю ночь сидеть переподнимать все.... (например для некоторых пакетов нужны спец права и спец учетки, не везде прокатит RDP, нужна консоль и т.д.) ты от себя бекап сделай и отложи, напиши письмо админам, пусть копают... а пользователей которые кричат "не работает" шли к админам... |
|||
126
vde69
модератор
27.02.15
✎
08:58
|
(123) у скуля есть таймаут ожидания блокировки, по умолчанию он вроде 600 сек, а теперь представь
я поднимаю транзакцию и внутри нее пытаюсь востановить последовательность, при этом блокируется таблица границ в разрезе измерения (например Номенклатуры), если кто-то попробует провести ЛЮБОЙ документ содержащий Номенклатуру из заблокированых моей транзации то он будет ожидать окончания моей блокировки... если ожидание продлится 600сек то его транзакция отвалися с сабжем... это НЕ ДЕДЛОК!!!! дедлок - это взаимная блокировка внутри ОДНОЙ транзакции!!! |
|||
127
1976vas
27.02.15
✎
08:59
|
(125) Нас трое, сидим все вместе, дружим. Я понимаю, что могут быть ошибки, сама Майкрософт не рекомендует на рабочем сервере сразу делать обновление. Думаю все же сделать так - разверну сервер где-нибудь в другом месте, поставлю, накачу пакет, погоняю, только потом на рабочей буду.
|
|||
128
floody
27.02.15
✎
09:02
|
"дедлок - это взаимная блокировка внутри ОДНОЙ транзакции!!!"
мдяя |
|||
129
vde69
27.02.15
✎
09:05
|
(128) согласен, может и в разных быть...
|
|||
130
piter3
27.02.15
✎
09:07
|
(122)нет.это их работа,а потом кто думаешь будет виноват?
|
|||
131
1976vas
27.02.15
✎
09:18
|
Спасибо всем, согласовал с админами, сделают они обновления. По результатам отпишусь.
|
|||
132
brznzglwgn
27.02.15
✎
09:19
|
Внутри ОДНОЙ транзакции не может быть взаимоблокировки никак. Блокировки внутри одной транзакции поглащаются или эскалируются.
|
|||
133
vde69
05.03.15
✎
15:29
|
интересно чего там у автора?
|
|||
134
1976vas
06.03.15
✎
10:22
|
(133) Не получилось на прошлых выходных обновить SQL для запуска регламентных заданий, поэтому пока не пишу. Обязательно отпишусь, как сделаем. Я хотел спросить, сколько, примерно, будут реиндексироваться таблицы и дефрагментироваться индексы, если никогда не проводились регламенты? База больше 100 Гигов, документооборот 50 Гигов и системные базы. А бухи пока так и жалуются на скорость...
|
|||
135
vde69
16.03.15
✎
15:35
|
прошла неделя :) админы пьянствуют :)))
|
|||
136
1976vas
17.03.15
✎
16:25
|
(135) Сюда перепишу. Пока никак не обновят скул для выполнения регламентных, появилась новая подробность - сервер переводили в режим отладки, говорят в этом режиме еще может тормозить.
"админы пьянствуют :)))" - еще как )), а когда нормальные, то не получается скул обновить. Сегодня еще попытка. |
|||
137
1976vas
17.03.15
✎
16:30
|
Напишу ответ, полученный от vde69, для хронологии и может кому-то понадобится:
"режим отладки может влиять только когда кто-то пользуется трассировкой серверных модулей в конфигураторе в РАБОЧЕЙ базе" |
|||
138
1976vas
18.03.15
✎
07:47
|
Не без приключений обновили SQL, регламентные задания заработали. По словам админа 1с после обновления SQL тормозила, но после перезапуска виртуалки вроде все пошло нормально. База большая, больше 100 Г, появились вопросы:
1. Как долго будет выполняться дефрагментация индексов? 2. Как долго будет проходить построение индексов? 3. Как отразится на работе пользователей обновление статистики и продувка кэша во время их работы? Учитывая, что база никогда не проходила регламент. |
|||
139
1976vas
18.03.15
✎
07:59
|
(138) + 2 часа 53 минуты шло только обновление статистики. Интересно потом будет быстрее?
|
|||
140
vde69
18.03.15
✎
09:06
|
первые два вопроса - сильно зависят от конкретики, просто запускай ночью, предположительно часа два...
обновление статистики на работу не влияет... продувка кеша - не уверен, я-бы не стал это делать во время активной работы... пускай пару дней поработают с обновлением статистики (1 раз в 4 часа) потом замерь сколько будет идти обновление статистики, опроси юзеров на предмет "сильно медленее стало чем было раньше?" (спрашивать нужно имено "медленее", это трюк такой который субьективных юзеров заставит сказать "чуток медленее чем было", считай оценки "как было" и "стало лучше") если потом проведи скриптовый тест и сравни результаты с первым и с опросами, получишь более менее честную картину... |
|||
141
1976vas
18.03.15
✎
09:19
|
(140) Дефрагментация индексов за ночь не прошла. Продувка кэша тоже не прошла из-за синтаксиса, у нас DBCC FREEPRPCCACHE, скачал где-то на сайте, а должно быть DBCC FREEPROCCACHE, я так понимаю. Пока отключили Скул агента, вечером попробуем снова запустить.
|
|||
142
vde69
18.03.15
✎
09:46
|
у меня НОЧНОЙ регламент выглядит так http://www.picshare.ru/view/6073393/
база в 10 гигов проходит за 25 минут... |
|||
143
Torquader
18.03.15
✎
09:55
|
(126)
Что значит "взаимоблокировка в одной транзакции" ? Для взаимоблокировки должно быть, как минимум, две транзакции - одна блокирует сначала одну таблицу, а потом другую - другая - наоборот - сначала вторую, а потом - первую. Получается, что они друг друга ждут, но SQL-сервер умеет такое "разгребать" - он "убивает" одну из транзакций, то есть она завершается с ошибкой, а вторая - продолжается. |
|||
144
1976vas
18.03.15
✎
09:57
|
(143) Да, мы потом это обсудили
|
|||
145
brznzglwgn
18.03.15
✎
12:06
|
(142) Зачем после ребилда делать дефрагментацию? Она итак проходит во время ребилда.
|
|||
146
vde69
18.03.15
✎
12:09
|
(145) может и не надо, но читал на форуме, что в разных версиях по разному.
Меня сейчас все устраивает, и скорость и стабильность и время... |
|||
147
1976vas
18.03.15
✎
12:11
|
(142) Я думаю, что у меня так долго, потому, что никогда не делалось. Потом ускорится.
|
|||
148
vde69
18.03.15
✎
12:18
|
кстати сейчас после шринка выяснется, что база не 100 гигов а всего 20 :)
|
|||
149
1976vas
18.03.15
✎
12:27
|
(148) А у меня шринк не настроен, что это за обрезание? Что происходит?
|
|||
150
1976vas
18.03.15
✎
12:29
|
||||
151
1976vas
18.03.15
✎
12:31
|
Решили пока с индексами ничего не делать. Будем раз в 4 часа обновлять статистику, ночью продувка кэша. Только есть предположение, что дневная статистика без продувки сразу после нее замедлит работу.
|
|||
152
vde69
18.03.15
✎
12:34
|
(151) ребулдинг индеса обязательно сделай, хотя-бы раз в неделю (на выходные)
|
|||
153
1976vas
18.03.15
✎
12:36
|
(152) Хорошо, попробую, отпишусь. Спасибо!
|
|||
154
vde69
02.04.15
✎
10:11
|
год закрыли :)
|
|||
155
1976vas
02.04.15
✎
10:14
|
(154) Да )) Начнем делать потихоньку, сегодня.
|
|||
156
1976vas
02.04.15
✎
10:43
|
+ Пока без всего - просто сделали выделение памяти SQL так, чтобы загруженность памяти на виртуалке была не больше 80 процентов - все работает намного стабильней и замечаний практически нет, но настроим регламенты еще обязательно. Проблема была в том еще, что под SQL отводили много памяти и на системные процессы не было резервов, подскакивало до 98 процентов, получался затуп.
|
|||
157
1976vas
07.04.15
✎
15:57
|
Потихоньку включаю регламентные задания. Пока ежедневно 2 раза выполняется 1-й план, состоящий из Обновления статистики и очистки кэша, и 2-й план который по ночам выполняет дефрагментацию. Вроде все нормально, но сегодня почему-то не отработал первый план http://s04.radikal.ru/i177/1504/b8/b6bb3b807e62.png Вместо двух заданий почему-то просто зеленая галка. Вечером позвонила ГБ, говорит притормаживает 1с. Вопрос собственно, план не выполнился и выполняется? Почему одна галка, без задач?
|
|||
158
vde69
07.04.15
✎
16:05
|
предположу, что "в процессе" и по этому-же может притормаживать...
|
|||
159
vde69
07.04.15
✎
16:06
|
или в расписание указали "выполнить один раз"
|
|||
160
1976vas
07.04.15
✎
16:15
|
(158) Я тоже так думаю, но выполнялось 6-го 2 часа, а сегодня уже весь день с 7 утра, что-то пошло не так?
(159) http://s018.radikal.ru/i509/1504/4c/8a3e76338bd6.png Повторяющееся задание Видимо задание выполняется, пользователи начинают кричать о тормозах. Если в заданиях Остановить задание, должна отработать остановка? |
|||
161
arsik
гуру
07.04.15
✎
16:28
|
Подскажите, как выполнить скрипт из MS SQL 2008 но под другим пользователем? Не тем которым запущен агент. Такое возможно?
|
|||
162
1976vas
07.04.15
✎
16:35
|
(161) Не знаю точно, но думаю скрипты можно запускать только под учеткой с админскими правами
|
|||
163
vde69
07.04.15
✎
16:36
|
(161) можно, только я не помню как технология называется....
|
|||
164
vde69
07.04.15
✎
16:38
|
dts или dto ... не помню точно
|
|||
165
1976vas
07.04.15
✎
16:57
|
В 15-00 отработал новый план, вроде нормально http://s018.radikal.ru/i523/1504/9b/49a0674fc763.png
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |