Взаимоблокировки в УПП

1. Seraph6 21.01.22 11:10 Сейчас в теме
Работаем в SQL версии 1С:УПП. Платформа 8.3.16.1814, конфигурация в режиме совместимости с 8.2.13, как положено для УПП.

С некоторых пор народа стало больше работать и всех замучали взаимные блокировки.
То есть не просто два пользователя зашли в один документ, и один из них не может его сохранить, пока второй с ним не закончит работу.
А буквально - куча разного народу работает в РАЗНЫХ документах, начиная от требований-накладных и заканчивая заказами покупателей. И блокируется проведение этих разных документов.
То есть менеджер залез в заказ, оператор в реализацию, бухгалтер в отчет производства за смену, и никто не может провести, вылезает ошибка (см.скриншот), и они сидят ждут друг друга, жмут на ОК, кто первый освободит документ, и дальше по цепочке проведение уже нормально проходит.

Я так понимаю, при проведении документа блокируются транзакции по всем регистрам, которые он двигает, поэтому затрагивается целый круг других документов, которые работают с этими же регистрами.

Не очень понятно, что можно сделать в рамках ограничений платформы 8.2 и УПП, но народ у нас ропщет, мол, где они раньше работали, ничего подобного не наблюдалось.
Какие-то рекомендации по оптимизации настроек SQL-сервера и сервера 1С делали, вроде даже сначала эффект какой-то был, но потом все вернулось на круги своя.

Как-то решается эта проблема? Или ничего не сделать до перехода на платформу 8.3 и ERP?
Прикрепленные файлы:
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
30. Free_Danial 53 29.01.22 12:00 Сейчас в теме
Для начала перестроение, дефрагментация индексов, обновление статистики, шринк базы, шринк лога.
и если после стандартного обслуживания базы проблема не уходит то:

Блокировки можете разобрать снимая тж
<?xml version="1.0"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">

<log location="ваш путь" history="8">

<event>
<eq property="name" value="DBMSSQL"/>
</event>
<event>
<eq property="name" value="SDBL"/>
</event>
<event>
<eq property="name" value="CALL"/>
</event>
<event>
<eq property="name" value="EXCP"/>
</event>
<event>
<eq property="name" value="EXCPCNTX"/>
</event>
<event>
<eq property="name" value="TLOCK"/>
</event>
<event>
<eq property="name" value="TTIMEOUT"/>
</event>
<event>
<eq property="name" value="TDEADLOCK"/>
</event>
<property name="all"/>

</log>

</config>

и события SQL lock_deadlock, lock_deadlock_chain, lock_timeout, lock_escalation, lock_timeout_greater_than_0, xml_deadlock_report, rpc_completed, sql_batch_completed
По событиям SQL найдете блокировки SQL далее тж чтоб строки кода найти используете тж, по ТЖ управляемые блокировки, а далее править.
Сюдя по ошибке у вас управляемые блокировки и держать должно куда поболее 100 пользователей естественно при типовой конфигурации.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
5. ActionBlog 21.01.22 11:25 Сейчас в теме
(1) Анализировали ли Вы блокировка каких именно данных приводит к очереди?
9. Seraph6 21.01.22 11:33 Сейчас в теме
(5) Журналы смотрели. Там просто транзакции по многочисленным регистрам сведений и накоплений. Они висят какое-то время и потом отменяются.
Как проанализировать более предметно - часть вопроса. Можете что-то подсказать?
34. Дмитрий74Чел 234 15.01.24 17:50 Сейчас в теме
(9) теория на ИТС https://its.1c.ru/db/metod8dev#content:4051:hdoc
Ну и ссылки выше в блоке "По теме из базы знаний", например https://infostart.ru/1c/articles/252798/
19. STELEICE 21.01.22 14:42 Сейчас в теме
(1) Ручками писать блокировки надо управляемые. Но это проект не на один день.
2. wladimirpav 21.01.22 11:17 Сейчас в теме
Конфигурация сервера, количество ОЗУ, количество пользователей?
3. Seraph6 21.01.22 11:21 Сейчас в теме
(2) Xeon Gold 5217, 128 Гб ОЗУ. MS SQL и 1С сервер 64 битные. Количество пользователей от 30 до 40. По данным диспетчера задач процессор обычно нагружен на 10-15%, памяти занято 60-70%.
4. vlad636 4 21.01.22 11:23 Сейчас в теме
У нас тоже УПП, сервер слабее, количество пользователей около 80, таких проблем не замечено
7. Seraph6 21.01.22 11:29 Сейчас в теме
(4) Это обнадеживает. Есть мысли что где можно настроить для оптимизации?
Можете поделиться настройками кластера 1С и сервера 1С? Например "количество соединений на процесс" у вас какое стоит? Мы пробовали менять этот параметр, вроде бы как раз улучшения наблюдались, но какие-то временные. Так в итоге и не поняли, с каким значением лучше.
11. vlad636 4 21.01.22 11:39 Сейчас в теме
(7) как-то года 2 назад тоже замучили блокировки, потом настраивал сисадмин, но он к сожалению уже не помнит что именно помогло
14. vlad636 4 21.01.22 11:45 Сейчас в теме
(7) Но однозначно говорит настройки SQL
18. Seraph6 21.01.22 11:54 Сейчас в теме
(14) Может быть вспомнит, какие именно? Те, что в методических рекомендациях 1С, вроде все выполнены.
6. rintik 19 21.01.22 11:29 Сейчас в теме
8. Seraph6 21.01.22 11:31 Сейчас в теме
10. TormDV 21.01.22 11:34 Сейчас в теме
Средствами SQL база обслуживается? Не выполняется ли, например, реиндексация в момент возникновения ошибок?
12. Seraph6 21.01.22 11:41 Сейчас в теме
(10) Хм... Есть планы обслуживания. В том числе выполняется задание по резервному копированию журнала транзакций раз в 2 часа.
Совсем не подумал, что это может влиять.
P.S. Но вроде бы по времени не бьётся. Бэкап в 9, 11, 13, 15 и 17. Затыки, например, в 10:30. То есть первый бэкап по любому уже отработал, а второй еще не начался.
13. TormDV 21.01.22 11:45 Сейчас в теме
(12) Копирование журнала транзакций как-бы не должно (на 100% не уверен, мы ЖТ не бекапим), но лучше проследить что творится на сервере в момент возникновения блокировок. Другие планы и их расписание также посмотрите что и во сколько.
15. Seraph6 21.01.22 11:46 Сейчас в теме
(13) По остальным планам все запускается глубокой ночью. В рабочее время только транзакции.
16. TormDV 21.01.22 11:49 Сейчас в теме
(15) Все планы успевают отработать к начале работе пользователей?
17. Seraph6 21.01.22 11:52 Сейчас в теме
(16) Да. Там время запуска типа час ночи, три часа ночи. К утру по любому все отработало.
20. user1203706 13 21.01.22 15:09 Сейчас в теме
(1) Выкинуть режим совместимости..совсем (сделав реструктуризацию V2, чтоб не ждать год). Режим управления блокировками выставить в свойствах конфы- управляемый. Это для начала.
25. gybson 21.01.22 22:56 Сейчас в теме
(20)Такой режим даже в типовых не ставят.
27. user1203706 13 21.01.22 23:13 Сейчас в теме
(25)
Нам же нужно ускорить. А то что типовые отстают от релизов на несколько лет - так это и есть основной тормоз в развитии платформы.
28. gybson 21.01.22 23:45 Сейчас в теме
(27)несколько? лет на 7, нет?
29. user1203706 13 22.01.22 10:15 Сейчас в теме
(28) да.. ибо на некоторых типовых еще режим совместимости с 8.2.
Это же полный ПЭ.

Да. Всем кто захочет режим совместимости >=8.3.15, надо иметь ввиду, что РБ теперь имеет движенияССубконто как реальную табличку, добавив 24 новых поля в основную табличку регистра бухгалтерии. Для баз чуть больше ларька, обычная реструктуризация может длиться сутками и..не закончиться, при ошибках. Чтоб не ждать - делайте реструктуризацию V2
21. user1203706 13 21.01.22 15:10 Сейчас в теме
Платформу поставить, хотя бы последнюю 18
22. Painted 49 21.01.22 16:11 Сейчас в теме
Снизить уровень изоляции - https://infostart.ru/1c/articles/621599/
Построить недостающие индексы или убрать неработающие
23. alex_bob 246 21.01.22 16:26 Сейчас в теме
У себя отказались от режима совместимости года 2 назад. Стоит 8.3.12 - полет нормальный. Примерно 100 сеансов каждый день - блокировок нет. Кроме изменения собственно свойства режим совместимости и управляемых блокировок приходится комментировать строковые функции в общем модуле ЕГАИС, которые появились в платформе 8.3 и переименовать структуру НаправлениеПоиска, которая в платформе 8.3 является системным перечислением.
24. JohnGalt 57 21.01.22 18:57 Сейчас в теме
Только повышение режима совместимости до 8.3+ решает проблему.
26. gybson 21.01.22 22:57 Сейчас в теме
1. Уйти на режим совместимости 8.3*, чтобы sql иначе блокировал данные
2. Если есть обмены, внимательно на них посмотреть.
30. Free_Danial 53 29.01.22 12:00 Сейчас в теме
Для начала перестроение, дефрагментация индексов, обновление статистики, шринк базы, шринк лога.
и если после стандартного обслуживания базы проблема не уходит то:

Блокировки можете разобрать снимая тж
<?xml version="1.0"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">

<log location="ваш путь" history="8">

<event>
<eq property="name" value="DBMSSQL"/>
</event>
<event>
<eq property="name" value="SDBL"/>
</event>
<event>
<eq property="name" value="CALL"/>
</event>
<event>
<eq property="name" value="EXCP"/>
</event>
<event>
<eq property="name" value="EXCPCNTX"/>
</event>
<event>
<eq property="name" value="TLOCK"/>
</event>
<event>
<eq property="name" value="TTIMEOUT"/>
</event>
<event>
<eq property="name" value="TDEADLOCK"/>
</event>
<property name="all"/>

</log>

</config>

и события SQL lock_deadlock, lock_deadlock_chain, lock_timeout, lock_escalation, lock_timeout_greater_than_0, xml_deadlock_report, rpc_completed, sql_batch_completed
По событиям SQL найдете блокировки SQL далее тж чтоб строки кода найти используете тж, по ТЖ управляемые блокировки, а далее править.
Сюдя по ошибке у вас управляемые блокировки и держать должно куда поболее 100 пользователей естественно при типовой конфигурации.
31. Seraph6 10.02.22 12:04 Сейчас в теме
Забыл отписаться. По факту помогла корректная настройка обслуживания базы.
Обновление статистики, дефрагментация индексов, перестроение, вот это вот всё.
32. zes 4 15.01.24 04:26 Сейчас в теме
(31) Добрый день!
Тоже похожая проблема на предприятии, УПП sql 8.3. Только пользователей 500+
Сделали свертку, после этого начались блокировки.
Что только уже не делали, и сервер поменяли, мощный теперь, и все процедуры в ТИ, и dt ввгружали-загркжали. Не помогает ничего.

Подскажите какие настройки использовали?
33. homer_ 78 15.01.24 10:15 Сейчас в теме
(32) Нет универсального решения. но 80% случаях виноват скуль/винда/сеть.
Оставшиеся 20% - говнокод
0% необходимо оптимизация запросов в УПП. Но для этого надо в скуле получить статистику и расшифровать/интерпретировать ее.
35. Seraph6 24.01.24 11:00 Сейчас в теме
(32) Регламентные операции в соответствие с этой статьей:
https://its.1c.ru/db/metod8dev/content/5837/hdoc
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот