Книга знаний

1С:Предприятие / Администрирование / Производительность

Исправление ошибки 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 - внешняя компонента)
Закладка

Описание | Рубрикатор | Поиск | ТелепатБот | Захваченные статьи | Установки | Форум
© Станислав Митичкин (Волшебник), 2005-2021 | Mista.ru

Яндекс.Метрика