Конфликт блокировок при выполнении транзакции. #734302


#0 by 1976vas
Участилась проблема с блокировками. База большая УПП 1.3, пользователей около 70. Главбух постоянно предъявляет претензии. Описал ей, что причина либо в кривом запросе, либо нагрузке на сеть, либо в мощности сервера, либо в настройках SQL. Ко всему этому не имею доступа, т.к. есть админы и сопровожденец конфы. В мою задачу входит только работа с пользователями и дописание всего внешнего. Вопрос такой, подскажите, пожалуйста, я ничего не упустил? Я так понимаю, что прежде чем задавать такие вопросы мне, мне нужно как минимум передать права на администрирование SQL-сервера, чтобы начать с трассировок. Я прав?
#0 by 1976vas
Участилась проблема с блокировками. База большая УПП 1.3, пользователей около 70. Главбух постоянно предъявляет претензии. Описал ей, что причина либо в кривом запросе, либо нагрузке на сеть, либо в мощности сервера, либо в настройках SQL. Ко всему этому не имею доступа, т.к. есть админы и сопровожденец конфы. В мою задачу входит только работа с пользователями и дописание всего внешнего. Вопрос такой, подскажите, пожалуйста, я ничего не упустил? Я так понимаю, что прежде чем задавать такие вопросы мне, мне нужно как минимум передать права на администрирование SQL-сервера, чтобы начать с трассировок. Я прав?
#1 by vde69
#2 by vde69
+ передай ссылку админам и пусть они тебе результат отдадут...
#3 by 1976vas
Спасибо большое, подумал еще, что может проблему создавать то, что сервер на виртуалке.
#4 by vde69
вполне может, тогда тебе нужны счетчики гипервизора... особенно очередь к дискам... закажи у админов... зы права не обязательно просить, по тому как вместе с правами ты получишь и зону ответсвенности, а сейчас ты смело все валишь на админов и пусть они разгребают...
#5 by 1976vas
Спасибо, просто считается если 1С тормозит - это ко мне ))
#6 by Cube
РАУЗ, я надеюсь, включен?
#7 by 1976vas
Нет, партионка
#8 by Cube
А, ну тогда понятно... Или вы расчет себестоимости по ночам делаете?
#9 by 1976vas
Я не определял расчет себестоимости, есть более продвинутый человек, который занимался внедрением и занимается поддержкой. Я бухам и говорю - делайте в выходные ))
#10 by vde69
не правильно поставил себя в компании.... смело говори "тормозит не 1с а сервер и сеть, все вопросы к админам...", проси разделения зон ответствености... разделением должно стать четко описаные критерии того что тебе выделяют админы, например 1. на SQL сервере не менее 32 гиг физической (не выгружаемой гипервизором) памяти для SQL сервера 2. на SQL сервере очередь к дискам не более 0.1 сек и так далее... тогда лего определить чья эта проблемма...
#11 by 1976vas
"Его нужно выполнить в Мастерс" написано в , имеется ввиду БД Master?
#12 by pescennius
Ветка мракобесия, занятно читать.
#13 by Cube
В той базе, о которой вчера говорили (15 активных пользователей) после перехода на РАУЗ забыли, что бывают блокировки. Перешли 4 года назад. Новые сотрудники вообще блокировки в глаза не видели и когда у кого-нибудь раз в год выскакивает - звонят мне с испугом "Это что такое?" :)
#14 by vde69
да
#15 by 1976vas
Спасибо!
#16 by 1976vas
результат запроса.
#17 by vde69
нормально это когда упирается в запись данных и лога, нормальные величины для этих операций от 5 до 10 %, у тебя их и в помине не видно, значит никакие танцы с дисками тебе ничего не ускорят.... идещь на и читаешь, оптимизируй настройки сети и сервера пока запись данных и лога хотя бы до 5% не дойдут...
#18 by Злопчинский
главное вопрос: может ли кто-то кроме одинэсника (а у меня сомнения и в них) - проконтролировать ПРАВИЛЬНОСТь конечных цифр (именно правильность, а не правдоподобность)
#19 by Rebelx
Причем тут сеть и сервер? проблема явно в коде это же дедлоки, а не таймауты
#20 by floody
Где написано про дедлоки? Через некоторое время вдруг окажется, что база на автоблокировках.. Регламенты на субд выполняются? Я бы посмотрел сначала: 2)недостающие/неиспользуемые индексы 3)рассчитаны ли итоги вообще (бывает и такое) 4)режим разделения итогов 3)полный пересчет итогов
#21 by floody
Какой релиз УПП? ПолучитьДеревоПартий обновлена?
#22 by 1976vas
Спасибо, но это не показания сервера, это я у себя на машине сервер развернул и пробовал, прежде чем на сервере что-то запускать. Просто хочу ориентироваться немного в результатах тестирований.
#23 by 1976vas
1С:Управление строительной организацией, редакция 1.3 (1.3.61.3) "ПолучитьДеревоПартий обновлена?" - как узнать?
#24 by 1976vas
1) Выясняю, вернее пытаюсь )) 2) Пытаюсь выяснить. 3) Уверен, что рассчитаны. 4) Не в курсе. 5) Не имею права. Сначала хочу выяснить проблемы сети, сервера и SQL, потому, как думаю это проще пока, потом копать дальше.
#25 by floody
если не имеете прав, почему тогда вообще этим занимаетесь?
#26 by 1976vas
Разделение идет, опытный программист сопровождает из франчи, а я на фикси - на подхвате.
#27 by floody
Меряйте железо, если оно в порядке, то смотрите долгие запросы.
#28 by 1976vas
Ох, пытаюсь :)
#29 by vde69
нафига это нужно на локалке???? это нужно ТОЛЬКО на боевом сервере!!! при активно работающих пользователях!!!
#30 by 1976vas
Боязно запускать сходу запрос на сервере )
#31 by 1976vas
Читаю Вашу статью и вот еще нарыл
#32 by vde69
не сцы, я тыщу раз так делал! (наша раша) :)
#33 by 1976vas
:) Сегодня запущу на сервере, завтра скину результаты, спасибо!
#34 by 1976vas
Кстати, в воскресенье перенес tempdb на другой диск, отвел память на 9Гигов под SQL, параллелизм в 1 поставил(было 0), в базе авторасширение поставил 200 и 50 Мб. Вроде побыстрее стало, по отзывам.
#35 by vde69
в вопросах оптимизации НИКОГДА не ориентируйся на отзывы, только на конкретные цифры... это САМОЕ ГЛАВНОЕ В ОПТИМИЗАЦИИ!!!
#36 by 1976vas
Я понял, надо было что-то быстрее предпринимать. Сейчас по анализам запроса буду пока ориентироваться.
#37 by Ник второй
Садись два, вы явно не вкурсе
#38 by Ник второй
+ Отзыввы крайне важны, так как оптимизация делается не для мифических цифр, а для удовлетворения потребности Заказчика
#39 by vde69
это Вы не в курсе, что у людей "быстрее" зависит не от фактов а например от ПМ, или от того сколько времени до сдачи баланса и еще от миллиона причин. Любая оптимизация начинается с вопросов - что тормозит? - ОСВ за год - Сколько сейчас? - 10 мин - Сколько будет хорошо? - 30 сек при достижении результата в 30 сек оптимазацию следует прекратить не смотря на то, что жалобы останутся...
#40 by 1976vas
Давайте договоримся так, что все хорошо, если цифры статистики подтверждают мнение пользователей :)
#41 by vde69
нет ты не понял, пользователи будут орать при любых скоростях... (реже или чаще, но будут) почитай про SLA...
#42 by 1976vas
Сейчас они довольны, хотя я понимаю, что аппетиты растут и это не надолго. Спасибо, почитаю, прямыча читакой становлюсь :)
#43 by 1976vas
если кому-то интересно...
#44 by 1976vas
Результат запроса на сервере
#45 by 1976vas
+ XE_DISPATCHER_WAIT = 64,5% - означает, что много фоновых заданий?
#46 by vde69
"Происходит, если фоновый поток, который используется для сеансов расширенных событий, ожидает обработки буферов событий." я-бы подумал, что регламент статистистики на сервере скуля давно отвалился, то есть банально план запроса строится слишком неоптимально... или распаралеливание криво работает... посмотри для начала 1. когда обновлялась статистика? 2. часом скуль не на виртуалке?
#47 by vde69
может переиндексация или еще чего... короче показывай весь скулевский регламент...
#48 by 1976vas
1. Регламент по статистике делается ежедневно сейчас (Админ говорил, надо проверить). 2. Сервер SQL (только он) на виртуалке.
#49 by 1976vas
Сейчас попробую.
#50 by 1976vas
Не, не смогу сегодня, пароля нет на доступ и админ уехал. Завтра посмотрю, выложу.
#51 by vde69
>>>Сервер SQL (только он) на виртуалке. это очень серьезный момент, грамотно настроить можно, но я такого почти не встречал.... скуль собирает статистику и на основании этого строит план запросов и его распаралеливает, по идее все куски одного запроса при адекватной статистики не ждут друг друга а исполняются "к сроку". Если происходят внешние события (например гипервизор включает что-то и начинает один камень делить с другой виртуалкой) то весь запрос начинает ждать те кусочки запроса которые пришлись на этот камень.... там много заморочек и с памятью и с диском и с камнями...
#52 by Гёдза
опять начали про память на сервере, когда проблема блокировок?
#53 by Гёдза
Отложенное проведение спасет отца русской демократии.
#54 by Гёдза
Если диск с базой невиртуальный то нормально все
#55 by vde69
отложеное проведение - путь к минусам... путь конечно возможный, но больно много на нем кочек...
#56 by Гёдза
единственно возможный пусть с упп 1.3
#57 by Гёдза
ну или покупать промышленные ссд, чтоб кардинально сократить время записи
#58 by vde69
по сабжу, да и картина в целом похожа... автору советую списатся с автором указаного топа о результатах перехода на железный сервер...
#59 by vde69
При чем тут время записи, у автора XE_DISPATCHER_WAIT - 64.5%
#60 by 1976vas
Спасибо, с самого начала по отзывам говорил админам, что виртуалка - зло. Трудно будет перенести на обычный сервер?
#61 by 1976vas
Скорость увеличу - взаимоблокировок поменьше будет, так думаю. виртуальный сколько стоит такой SSD, примерно? И насколько увеличит скорость, если все же tempdb на него положить?
#62 by 1976vas
Спасибо, почитаю, если автор не будет против - спишусь.
#63 by vde69
при установке SSD резко увелится скорость фулскана, а поиска по индексу увеличится мало, по этому SSD рулит только для логов (при условии правильных индексов в 1с)
#64 by vde69
+ то есть SSD сделает кривые руки программиста 1с не такими видными народу... для нормальных баз SSD офигенного прироста не дает...
#65 by 1976vas
У нас УПП вся паханная перепаханная. Плюс строительный модуль от Раруса. SSD по 8 тысяч - это не то? Просто никогда не интересовался железом.
#66 by vde69
у меня были отрицательные опыты с SSD я конечно понимаю, что будущее за ними, но я не слежу за ними... придет эра массового внедрения SSD - въеду в тему :)
#67 by 1976vas
Там в 21 посте "на железной машине (а не на виртуалки) длину очереди к диску, если более 0.5с - то мало, если 5-10с - то афигительно мало" - как узнать длину очереди к диску? У меня память под SQL 9Гигов всего, а крутится Документооборот и УПП.
#68 by Ник второй
Вы про Апдекс, тогда тут вопросов нет, абсолютно согласен.
#69 by vde69
не путай, память на сервере скуль видит то, что ему отдано гипервизором, а гипервизор может имеет всего 1 гиг памяти а остально своп :) "железная машина" - это гипервизор, все замеры счетчиков винды нужно делать на нем а не на вируальной машине где стоит скуль
#70 by 1976vas
Своп - это на Линуксе? У меня Win Сервер 2008
#72 by 1976vas
Спасибо! Осталось разобраться с монитором производительности показания снимать.
#73 by 1976vas
Регламентные задания настроены, но как оказалось не выполнялись, т.к. был отключен SQL Agent.
#74 by vde69
бинго!!! ну давай теперь после выполнения рег заданий повторяй тест.... уверен результат будет совсем иным... статистику обновляй не реже чем раз в два часа... только лучше подождать пару дней, что-бы планы запросов оптимизировались в несколько итераций, а потом уже тест повторяй... да и про виртуализацию то-же не забывай :)
#75 by vde69
и все-же регламентные задания распиши какие и как настроены :)
#76 by 1976vas
Спасибо, буду пробовать. Какой интервал в замерах лучше ставить? И результаты за 8 минут, которые у меня, насколько показательны?
#77 by vde69
>>>>Разделение идет, опытный программист сопровождает из франчи, а я на фикси - на подхвате. теперь ты понимаешь какой это "опытный программист" ???
#78 by vde69
сейчас ничего не делай, дай время скулю несколько раз обновить свою статистику регламентыми заданиями, уверен после этого скорость увелится примерно в 2 раза... то есть мы нашли явную проблемму, нужно ее устранить и только потом смотреть дальше, это нужно, что-бы проблеммы не наслаивались друг на друга...
#79 by 1976vas
Раз в день обновление статистики и чистка кэша, раз в неделю дефрагментация индексов и раз в неделю реиндексация таблиц. Но я перенастрою, статистику и кэш на раз в два часа, дефрагментацию раз в сутки и реиндексацию раз в неделю. Не-не, он администрированием не занимается, ставил SQL наш генеральный директор и админ.
#80 by piter3
может лучше на ночь перенести
#81 by 1976vas
Понятно, спасибо, сегодня вечером настроим регламентные задания. Что на ночь перенести, какое задание?
#82 by piter3
все.
#83 by vde69
обновление статистики поставьте раз в час или два, не бойтесь тормозов не будет. дефрагментацию индексов ставь раз день, что-бы ночью шло. реиндексацию можно так оставить... в понедельник запусти опять мой скрипт.... больше ничего не делай пока ибо надо посмотреть результат...
#84 by 1976vas
Ок. Регламент по статистике и кэшу на работу системы почти не влияют, я читал рекомендации делать их почаще.
#85 by vde69
а и параллелизм сейчас поставь = 0, а то ты его в 1 вроде ставил?
#86 by 1976vas
Да, везде вроде рекомендуют, а был в 0. Еще вопрос перед реиндексацией таблиц желательно делать бэкап?
#87 by 1976vas
Я верну в ноль, но что это значит?
#88 by vde69
рекомендую ставить 1 для 7.7 (или для тех кто не умеет настраивать регламент скуля), для 8.х лучше ставить 0... реиндексация и бекап не как не связаны, даже если реиндексация завершится крахом и после краха сделаем бекап, он будет валидным... бекап связан со шринком, но ты шринк не делаешь в регламенте...
#89 by vde69
это значит, что скуль сам определяет степень палалелизма на основании статистики и плана запроса
#90 by vde69
еще совет - перегрузите сервер, для проверки что агент работает, а то опять отвалится поле апдейта очередного.... но это уже к админу :)
#91 by 1976vas
Хорошо, все сделаю, протестирую в понедельник и отпишусь.
#92 by floody
скулю отдано 9 гигов? а объемы баз какие? если базы большие, то посмотрите счетчики SQL, может ему памяти мало
#93 by 1976vas
Две базы, скульные копии размером больше 100 Гигов.
#94 by 1976vas
Еще вопрос возник, а на какие базы регламент применять?
#95 by 1976vas
В смысле только на рабочие или на системные тоже?
#96 by vde69
на все... даже на тестовые, хуже не будет :) про память - разумеется мало (и наверняка она в своп у гипервизора уходит), но это будет видно чуть позже, по моим прикидкам у автора в понедельник будет в 2...3 раза быстрее все работать... а это уже не мало ....
#97 by 1976vas
Хотелось бы )) Кстати по блокировкам, может кому понадобится нашел такой скрипт [1C] SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED DECLARE @dbid AS smallint; use [test]; SET @dbid=DB_ID; /*кто кого*/ SELECT DB_NAME(pr1.dbid) AS 'DB'       ,pr1.spid AS 'ID жертвы'       ,RTRIM(pr1.loginame) AS 'Login жертвы'       ,pr2.spid AS 'ID виновника'       ,RTRIM(pr2.loginame) AS 'Login виновника'       ,pr1.program_name AS 'программа жертвы'       ,pr2.program_name AS 'программа виновника'       ,txt.[text] AS 'Запрос виновника' FROM   MASTER.dbo.sysprocesses pr1(NOLOCK)        JOIN MASTER.dbo.sysprocesses pr2(NOLOCK)             ON  (pr2.spid = pr1.blocked)        OUTER APPLY sys.[dm_exec_sql_text](pr2.[sql_handle]) AS txt WHERE  pr1.blocked <> 0 [1C] Теперь если появляются блокировки, смотрю кто блочит, звоню, спрашиваю, прошу приостановить работу по приоритету. Пока хоть так.
#98 by Rebelx
см. "Конфликт блокировок при выполнении транзакции" = Дедлок В данном случае повышение производительности не решит проблему, а только сделает вероятность ее возникновения меньше. Т.е. только отложит проблему на будщее
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С