Исправление ошибки 1С:Предприятие 7.7/8.0 - 100% загрузка процессора при ожидании блокировкиПри работе 1С (7.7, 25 релиз, 8.0, 8.0.12.21) наблюдается неоправданная загрузка центрального процессора при ожидании захвата таблиц. Приведенная по ссылке разработка (DLL+патч) позволяет вставить вызов sleep() между последовательными опросами блокировки, и ликвидировать "торможение" в многопользовательской среде 1С (это особенно актуально при работе в режиме сервера терминалов). | | Автор статьи: romix | Редакторы: Мастер1С, Последняя редакция №5 от 05.10.06 | История URL: http://kb.mista.ru/article.php?id=179 | |
Ключевые слова: проблема со скоростью, тормозит база, блокировки, проведение документов, ожидание захвата таблиц, терминал, очень медленно работает, появляются сообщения о блокировках, транзакция, при выполнении транзакции произошла ошибка!, ошибка обращения к данным при транзакции, Повторить попытку выполнить транзакцию?
Разработка для скачивания
http://x-romix.narod.ru/vk_TerminalSleep.rar
Скачивать ЛЕВОЙ кнопкой мыши, ~237 К
Цель использования: разгрузить процессор, когда два или более пользователей пытаются провести документ. 1С пытается заблокировать таблицы, но делает это без пауз, и загружает процессор на 100%. При этом пользователи практически "встают", и нормальная работа прекращается. Компонента позволяет решить эту проблему и нормализовать работу пользователей.
Принцип работы: вставляет в цикл ожидания захвата таблиц системный вызов sleep.
Установка различается для версий DBF 7.7, SQL 7.7 и 1С 8.0, описана в readme.txt.
Отмена действия компоненты - выставить в INI-файле паузу = 0, выйти и войти в 1С.
Деинсталляция компоненты - восстановить папку BIN из резервной копии.
Исходный код (компилятор - Delphi 6) прилагается.
Нужен ли патч для 8.0 SQL?
Нет, там эта проблема не существует.
Как узнать, что проблема решена
Вставьте в модуль проведения Предупреждение(), чтобы остановить проведение. Начните (из другой копии 1С) проводить другой документ. 1С с ошибкой станет загружать процессор на 100% пустым циклом ожидания, тогда как 1С без ошибки (или с установленным исправлением) грузить процессор не будет.
Я начал свою разработку именно с этой проверки.
Другие возможные решения
ВК Приоритет
Автор: Александр Орефков
http://openconf.itland.ru/vk/prior/
multex_1c
Автор: Z1
http://1c.proclub.ru/modules/mydownloads/personal.php?cid=78&lid=2836
Ветка обсуждения
Решение проблемы 100% загрузки процессора при ожидании транзакции (ВК+перехват DLL)
Несколько положительных отзывов
orefkov
26- 11.04.06-08:45(25)
Более грамотное решение.
ø VitGun
146 - 10.04.06 - 12:02
« х
Отлично!! В ГМ прописал. Поставил УстановитьПаузуПриБлокировке(10). У юзеров Время ожидания=15. По словам бухов скорость на 50% выросла. 100% загрузки проца есть, но на 1 секунду - не больше(слабое железо), а раньше кто-нибудь проводит док - все висят...причем минуты 2-3...
ø pvase
218 - 12.04.06 - 13:55
« х romix - Большой СЕНКС, действительно рулит под SQL.
ø zenik
254 - 15.04.06 - 12:31
« х
(254) Результы теста: 2-х головый XEON 2.0, 8 гиг ОЗУ, SQL DE, Win2003 EE.
До патчинга скачек при блокировке транзакции до +40% (у сервака еще своя боевая нагрузка была). После патчинга... Скачков при блокировке небыло вообще. Delay оставил по умолчанию - 1000. Тест провел 3 раза. Каждый раз получая одинаковые результры.
Огромный респект автору.
ø Вильям
311 - 19.04.06 - 14:18
Ромикс! Спасибо! SQL - летает... 310
« х
(310) Ну да, операторы теперь не тормозят, когда проводят документов кучу...
312
ø Вильям
313 - 19.04.06 - 15:28
« х
(312) Пользователей - порядка 30, активных - человек 10. Операторы, когда набивали заказы, расходы - загружали весь процессор, сидели в ожидании и "нервно курили (с)". Теперь - тормозов нет. Еще раз спасибо. 314
ø Maniac
Модератор
343 - 22.04.06 - 14:32
« х
Рома, огромный тебе респект. Все работает на ура!!! У меня база 6 гиг на трех терминал-серверах. 50 юзеров. 17 регистров накопления. В последнее время вопрос о транзакциях стал особенно актуальным. Сейчас касса говорит что "не успевает работать за программой" )) Гыыы. Кросавчег!!!! 346
MIK
124- 15.04.06-01:55 romix, ты молодец! Будешь в Киеве, с меня литр пива с трубочками ☺
Другие разработки с данной функциональностью
Книга знаний: Перехват API-вызовов и альтернативные плагины для 1С:Предприятие
(DBF - реализация без внешней компоненты)
Книга знаний: Множественный отбор в журналах и справочниках 7.7 заменой запросов SQL
(SQL - внешняя компонента) |