|
Параллельные запросы на веб-сервис в 1С выполняются последовательно.
|
Я
|
|
vs84 20.09.16 - 18:16 | Здравствуйте.
Дано:
- конфа на 8.3 (совместимость Версия 8.2.16)
- создан веб-сервис, опубликован. Веб-сервер IIS, на одной машине с сервером 1С
- Разом запускаем 10 параллельных запросов на него (дергают одну функцию вс), по факту исполняются они последовательно. Причем очередность исполнения может не соответствовать очередности запуска.
Что во всей цепочке исполнения запроса на вс не умеет параллелить их исполнение? Может кто сталкивался с подобным. |
Serginio1 1 - 20.09.16 - 18:18 | А сколько у тебя лицензий, На каждый запрос, одна лицензия
|
Serginio1 2 - 20.09.16 - 18:19 | Плюс сколько ядер. Обычно пул потоков равен двойному количеству ядер
|
shuhard 3 - 20.09.16 - 18:22 | ( 0) попробуй Апачу
+ то, что http сервер обслуживает запросы в произвольном порядке - так всегда и было |
Остап Сулейманович 4 - 20.09.16 - 18:24 | ( 0) ISAPI от 1С однопоточный. Посему никакие "улучшалки" не помогут. |
Остап Сулейманович 5 - 20.09.16 - 18:25 | + ( 4) Проскакивал правда вариант разнести одинаковые по функциям сервисы по портам. Но что из того вышло - лично я хз. |
mehfk 6 - 20.09.16 - 18:29 | |
Остап Сулейманович 7 - 20.09.16 - 18:31 | ( 1) Лицензия не на запрос. А на подключение. А подключение одно. Соответственно и лицензия одна. |
gitotuta 8 - 20.09.16 - 18:40 | база то надеюсь серверная?
|
Fragster 9 - 20.09.16 - 18:44 | ( 0) в файловой так и будет |
Fragster 10 - 20.09.16 - 18:44 | в серверной - будет норм
|
Fragster 11 - 20.09.16 - 18:45 | |
vs84 12 - 20.09.16 - 18:50 | База серверная, лицензий много.
|
Cyberhawk 13 - 20.09.16 - 18:50 | ( 7) "А подключение одно" // Я почему-то подумал, что ТС под словами "Разом запускаем 10 параллельных запросов на него (дергают одну функцию вс)" имеет в виду как раз-таки 10 разных клиентов, а не 10 программных дерганий веб-сервиса из-под одного... |
Feunoir 14 - 20.09.16 - 18:51 | ( 0) Если с одного клиента, то ожидаемо, если с разных то печаль-беда. |
Остап Сулейманович 15 - 20.09.16 - 18:55 | ( 13) Десять разных клиентов дергают один ОДНОПОТОЧНЫЙ ISAPI. И пока оно не обслужит первый запрос (по единственному для него выделенному подключению) остальные стоят в сторонке (очереди веб сервера) и нервно курят. Не умеет оно сделать несколько подключений к базе. Только одно. В один момент времени. |
Остап Сулейманович 16 - 20.09.16 - 18:56 | + ( 15) Для мультиплексирования разносят несколько экземпляров ВЕБ-сервера по портам. Как в ( 11). |
Cyberhawk 17 - 20.09.16 - 18:58 | ( 15) ( 16) А, ясно, делают несколько инстансов Апача. А с ИИС как? |
Остап Сулейманович 18 - 20.09.16 - 18:58 | + ( 16) И тогда уже базу 1С могут дергать несколько ВЕБ-сервисов каждый со своего сервера.
Вроде как в 8.3.9 вместе с 64-х битным ISAPI пообещали врезать в него многопоточность. Чем дело кончилось - пока неизвестно. |
Остап Сулейманович 19 - 20.09.16 - 19:11 | Вот :
Вроде как организовали пул и время жизни.
|
vs84 20 - 20.09.16 - 19:11 | (16) "несколько экземпляров ВЕБ-сервера"
не спец в администрировании: речь про несколько разных веб-серверов (но все IIS, например), размещенных на одном сервере, по разным портам? |
Cyberhawk 21 - 20.09.16 - 19:12 | |
Остап Сулейманович 22 - 20.09.16 - 19:14 | ( 20) Типа да. Только мне непонятно как клиенты знают на каком порту сейчас свободен ВЕБ-сервер. Или тупо первым 10-и первый порт, вторым - второй ...? |
Asmody 23 - 20.09.16 - 19:18 | ( 17) В ИИС можно несколько сайтов сделать на разных портах, причем даже натравить на один каталог. Работает.
Перед ИИСом поставить nginx балансировщиком. |
DmitrO 24 - 21.09.16 - 08:33 | ( 15)Что-то у вас, Сулейманыч, какие-то конспирологические фантазии, прямо как у наших либералов.
Обратите внимание на описание элемента pool в vrd файле.
У меня в серверной базе сеансы веб-сервисов вполне себе работают параллельно. Пока работает один вызов, успевает отработать другой.
IIS 7, 1С 8.3.6
А в ( 19) анонсировано кеширование сеансов, сеанс сможет иметь состояние между вызовами, очередной вызов сможет использовать ранее созданный сеанс. |
DmitrO 25 - 21.09.16 - 08:51 | ( 24)+уточнение
1С 8.3.8.2054 совместимость 8.3.6 |
Serginio1 26 - 21.09.16 - 13:50 | ( 0) И настрой Default.vrd
|
vs84 27 - 21.09.16 - 17:11 | У меня было указано в настройках рабочего сервера количество соединений на процесс 2, указал 20 стало проглатывать вроде параллельнее, чем было. Ощущение, что именно параллельно могут где-то 10 запросов выполняться.
( 26) по-умолчанию (если ничего не настраивать): size = 100, maxAge = 20. Как то не понимаю, какими значениями тут можно оптимизировать. Есть идеи? |
Serginio1 28 - 21.09.16 - 17:23 | maxAge поставь час 3600 или сутки. Что бы не выбрасывались из пула.
Там же по нерусски написано
size attribute
Pool size – maximum number of connections in the pool.
The default value is 100.
maxAge attribute
Pool connection life – the maximum lifetime for a connection in the pool (in seconds). If the connection is not used over the specified lifetime, it will be removed from the pool. The default value is 20 seconds.
attempts attribute
Maximum number of attempts to connect to the 1C:Enterprise server.
The default value is 5.
attemptTimeout attribute
The 1C:Enterprise server connection timeout (in seconds).
The default value is 0.5 seconds.
waitTimeout attribute
The timeout between 1C:Enterprise server connection attempts (in seconds).
The default value is 0.5 seconds. |
vs84 29 - 21.09.16 - 17:38 | |