Тормоза при большом количестве одновременно запущенных COM-объектов
Добрый день.
Проблема следующая. Есть самописная большая конфа, которая использует много разных СОМ-объектов.
Основная работа с базой ведется через самописный веб-фронт, который общается с базой посредством НТТР-сервисов 1С, только ограниченное количество сотрудников работают через толстый клиент. В последнее время при увеличении количестваработающих пользователей заметил тормоза при инициализации СОМ-объектов на сервере. Такое ощущение, что где-то прописано ограничение на количество одновременно запущенных СОМ-объектов, при превышении которого СОМ-объект становится в очередь и не инициализируется до тех пор, пока для него не освободится слот. Пауза происходит в строке типа "МойСОМ = Новый СомОбъект("....."), и эта пауза не ограничена никаким таймаутами. Может пройти пол часа, после которых СОМ получит свой слот и далее выполнение кода продолжится. При этом тот же код на толстом клиенте отрабатывает без задержек, так как в этом случае СОМ запускается на клиентском компьютере, а не на сервере. Ресурсы процессора и памяти достаточные, существенной загрузки процессора и памяти нет.
Пока временное решение - некоторые СОМ-объекты заменил самописными консольными приложениями. Но это костыль, надо решить проблему с СОМ, так как есть алгоритмы, которые без СОМ никаки не решить.
Есть у кого идеи?
Проблема следующая. Есть самописная большая конфа, которая использует много разных СОМ-объектов.
Основная работа с базой ведется через самописный веб-фронт, который общается с базой посредством НТТР-сервисов 1С, только ограниченное количество сотрудников работают через толстый клиент. В последнее время при увеличении количестваработающих пользователей заметил тормоза при инициализации СОМ-объектов на сервере. Такое ощущение, что где-то прописано ограничение на количество одновременно запущенных СОМ-объектов, при превышении которого СОМ-объект становится в очередь и не инициализируется до тех пор, пока для него не освободится слот. Пауза происходит в строке типа "МойСОМ = Новый СомОбъект("....."), и эта пауза не ограничена никаким таймаутами. Может пройти пол часа, после которых СОМ получит свой слот и далее выполнение кода продолжится. При этом тот же код на толстом клиенте отрабатывает без задержек, так как в этом случае СОМ запускается на клиентском компьютере, а не на сервере. Ресурсы процессора и памяти достаточные, существенной загрузки процессора и памяти нет.
Пока временное решение - некоторые СОМ-объекты заменил самописными консольными приложениями. Но это костыль, надо решить проблему с СОМ, так как есть алгоритмы, которые без СОМ никаки не решить.
Есть у кого идеи?
По теме из базы знаний
Найденные решения
(19)
Проблема не в сертификатах, в локальной сети АПИ по локальным адресам идут без https, ибо в этом нет смысле.
Часть функционала уже переделал на подобное решение, но, к сожалению, все так сделать нельзя.
Уже нашел статью, "слоты" есть. Если кому надо будет - это называется "desktop heap" problem, информация есть, но найти ее та еще задача была, так как подобная проблема встречается крайне редко. Найти решение можно в интернете либо по названию проблемы, либо по строке "SharedSection=1024,20480,768". Приводить ссылку на другой ресурс с описанием решения не буду, чтобы не злить админов.
Ну так с сертификатами и SSL разобраться надо.
Проблема не в сертификатах, в локальной сети АПИ по локальным адресам идут без https, ибо в этом нет смысле.
ЗапуститьПриложение и передачу параметров через файлы никто не отменял. Unix way, между прочим, CGI и всётакое.
Часть функционала уже переделал на подобное решение, но, к сожалению, все так сделать нельзя.
Нет никаких "слотов" COM объектов. Каждый ведет себя по своему, причем еще в зависимости от модели - STA оно или MTA. Плюс какая нибудь прослойка DCOM с правами, плюс костыли для того-же MS Office, работу которых на безголовых сеансах никто не обещал, все эти хаки с созданиями каталогов, они от лукавого...
Уже нашел статью, "слоты" есть. Если кому надо будет - это называется "desktop heap" problem, информация есть, но найти ее та еще задача была, так как подобная проблема встречается крайне редко. Найти решение можно в интернете либо по названию проблемы, либо по строке "SharedSection=1024,20480,768". Приводить ссылку на другой ресурс с описанием решения не буду, чтобы не злить админов.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(4)
(1)
так что мешает переписать для клиента? или все ж таки на сервере выполняется?
и как вариант создавать ком-объекты только при их вызовах, это кстати оч.просто
(1)
При этом тот же код на толстом клиенте отрабатывает без задержек, так как в этом случае СОМ запускается на клиентском компьютере, а не на сервере.
так что мешает переписать для клиента? или все ж таки на сервере выполняется?
и как вариант создавать ком-объекты только при их вызовах, это кстати оч.просто
(9) тогда вариант с отложенным созданием ком-объектов
например так
создаем глобальную переменную чтонить типа Перем МойКом Экспорт;
ну и уже в самой процедуре или функции
Если МойКом = Неопределено Тогда МойКом = Новый .... дальше по тексту
для тестов достаточно переписать один кусок имхо
например так
создаем глобальную переменную чтонить типа Перем МойКом Экспорт;
ну и уже в самой процедуре или функции
Если МойКом = Неопределено Тогда МойКом = Новый .... дальше по тексту
для тестов достаточно переписать один кусок имхо
(14) Это не всегда возможно. Например, в табличном документе нельзя сделать в одном абзаце текст различными цветами и стилями. НТТР-запросы часто вываливают ошибку "failure when receiving data from the peer" при обращению к другим локальным АПИ. Везде, где возможно, используются внутренние механизмы 1С. Но, к сожалению, не все они работают хорошо и не все обеспечивают нужный мне функционал. Например, есть криптобиблиотеки, функционал которых никак средствами 1С не заменить.
(17)
Нет никаких "слотов" COM объектов. Каждый ведет себя по своему, причем еще в зависимости от модели - STA оно или MTA. Плюс какая нибудь прослойка DCOM с правами, плюс костыли для того-же MS Office, работу которых на безголовых сеансах никто не обещал, все эти хаки с созданиями каталогов, они от лукавого...
А ты выбрал, пожалуй, самый глючный способ RPC.
в табличном документе нельзя сделать в одном абзаце текст различными цветами и стилями
8.3.24 уже как год с хвостиком выпустили.
НТТР-запросы часто вываливают ошибку "failure when receiving data from the peer"
Ну так с сертификатами и SSL разобраться надо.
функционал которых никак средствами 1С не заменить.
ЗапуститьПриложение и передачу параметров через файлы никто не отменял. Unix way, между прочим, CGI и всётакое.
Нет никаких "слотов" COM объектов. Каждый ведет себя по своему, причем еще в зависимости от модели - STA оно или MTA. Плюс какая нибудь прослойка DCOM с правами, плюс костыли для того-же MS Office, работу которых на безголовых сеансах никто не обещал, все эти хаки с созданиями каталогов, они от лукавого...
А ты выбрал, пожалуй, самый глючный способ RPC.
(19)
Проблема не в сертификатах, в локальной сети АПИ по локальным адресам идут без https, ибо в этом нет смысле.
Часть функционала уже переделал на подобное решение, но, к сожалению, все так сделать нельзя.
Уже нашел статью, "слоты" есть. Если кому надо будет - это называется "desktop heap" problem, информация есть, но найти ее та еще задача была, так как подобная проблема встречается крайне редко. Найти решение можно в интернете либо по названию проблемы, либо по строке "SharedSection=1024,20480,768". Приводить ссылку на другой ресурс с описанием решения не буду, чтобы не злить админов.
Ну так с сертификатами и SSL разобраться надо.
Проблема не в сертификатах, в локальной сети АПИ по локальным адресам идут без https, ибо в этом нет смысле.
ЗапуститьПриложение и передачу параметров через файлы никто не отменял. Unix way, между прочим, CGI и всётакое.
Часть функционала уже переделал на подобное решение, но, к сожалению, все так сделать нельзя.
Нет никаких "слотов" COM объектов. Каждый ведет себя по своему, причем еще в зависимости от модели - STA оно или MTA. Плюс какая нибудь прослойка DCOM с правами, плюс костыли для того-же MS Office, работу которых на безголовых сеансах никто не обещал, все эти хаки с созданиями каталогов, они от лукавого...
Уже нашел статью, "слоты" есть. Если кому надо будет - это называется "desktop heap" problem, информация есть, но найти ее та еще задача была, так как подобная проблема встречается крайне редко. Найти решение можно в интернете либо по названию проблемы, либо по строке "SharedSection=1024,20480,768". Приводить ссылку на другой ресурс с описанием решения не буду, чтобы не злить админов.
(21) Эта настройка меняет ограничение на количество одновременно работающих дочерних процессов, запущенных службой агента сервера 1С, коими есть СОМ-объекты. ADODB.Connection тут не при чем, так как он всего-лишь один из дочерних процессов. То есть изменение настройки позволит службе агента сервера 1С запускать больше дочерних процессов одновременно.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот