|
Параллельные запросы на веб-сервис в 1С выполняются последовательно. | ☑ | ||
---|---|---|---|---|
0
vs84
20.09.16
✎
18:16
|
Здравствуйте.
Дано: - конфа на 8.3 (совместимость Версия 8.2.16) - создан веб-сервис, опубликован. Веб-сервер IIS, на одной машине с сервером 1С - Разом запускаем 10 параллельных запросов на него (дергают одну функцию вс), по факту исполняются они последовательно. Причем очередность исполнения может не соответствовать очередности запуска. Что во всей цепочке исполнения запроса на вс не умеет параллелить их исполнение? Может кто сталкивался с подобным. |
|||
1
Serginio1
20.09.16
✎
18:18
|
А сколько у тебя лицензий, На каждый запрос, одна лицензия
|
|||
2
Serginio1
20.09.16
✎
18:19
|
Плюс сколько ядер. Обычно пул потоков равен двойному количеству ядер
|
|||
3
shuhard
20.09.16
✎
18:22
|
(0) попробуй Апачу
+ то, что http сервер обслуживает запросы в произвольном порядке - так всегда и было |
|||
4
Остап Сулейманович
20.09.16
✎
18:24
|
(0) ISAPI от 1С однопоточный. Посему никакие "улучшалки" не помогут.
|
|||
5
Остап Сулейманович
20.09.16
✎
18:25
|
+ (4) Проскакивал правда вариант разнести одинаковые по функциям сервисы по портам. Но что из того вышло - лично я хз.
|
|||
6
mehfk
20.09.16
✎
18:29
|
(1) Отнюдь.
|
|||
7
Остап Сулейманович
20.09.16
✎
18:31
|
(1) Лицензия не на запрос. А на подключение. А подключение одно. Соответственно и лицензия одна.
|
|||
8
gitotuta
20.09.16
✎
18:40
|
база то надеюсь серверная?
|
|||
9
Fragster
гуру
20.09.16
✎
18:44
|
(0) в файловой так и будет
|
|||
10
Fragster
гуру
20.09.16
✎
18:44
|
в серверной - будет норм
|
|||
11
Fragster
гуру
20.09.16
✎
18:45
|
для файловой есть такая заляпуха: v8: Многопоточное решение для файловой базы через веб (редиректор)
|
|||
12
vs84
20.09.16
✎
18:50
|
База серверная, лицензий много.
|
|||
13
Cyberhawk
20.09.16
✎
18:50
|
(7) "А подключение одно" // Я почему-то подумал, что ТС под словами "Разом запускаем 10 параллельных запросов на него (дергают одну функцию вс)" имеет в виду как раз-таки 10 разных клиентов, а не 10 программных дерганий веб-сервиса из-под одного...
|
|||
14
Feunoir
20.09.16
✎
18:51
|
(0) Если с одного клиента, то ожидаемо, если с разных то печаль-беда.
|
|||
15
Остап Сулейманович
20.09.16
✎
18:55
|
(13) Десять разных клиентов дергают один ОДНОПОТОЧНЫЙ ISAPI. И пока оно не обслужит первый запрос (по единственному для него выделенному подключению) остальные стоят в сторонке (очереди веб сервера) и нервно курят. Не умеет оно сделать несколько подключений к базе. Только одно. В один момент времени.
|
|||
16
Остап Сулейманович
20.09.16
✎
18:56
|
+ (15) Для мультиплексирования разносят несколько экземпляров ВЕБ-сервера по портам. Как в (11).
|
|||
17
Cyberhawk
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
|
Вот : https://wonderland.v8.1c.ru/blog/povyshenie-proizvoditelnosti-veb-servisov/
Вроде как организовали пул и время жизни. |
|||
20
vs84
20.09.16
✎
19:11
|
(16) "несколько экземпляров ВЕБ-сервера"
не спец в администрировании: речь про несколько разных веб-серверов (но все IIS, например), размещенных на одном сервере, по разным портам? |
|||
21
Cyberhawk
20.09.16
✎
19:12
|
||||
22
Остап Сулейманович
20.09.16
✎
19:14
|
(20) Типа да. Только мне непонятно как клиенты знают на каком порту сейчас свободен ВЕБ-сервер. Или тупо первым 10-и первый порт, вторым - второй ...?
|
|||
23
Asmody
20.09.16
✎
19:18
|
(17) В ИИС можно несколько сайтов сделать на разных портах, причем даже натравить на один каталог. Работает.
Перед ИИСом поставить nginx балансировщиком. |
|||
24
DmitrO
21.09.16
✎
08:33
|
(15)Что-то у вас, Сулейманыч, какие-то конспирологические фантазии, прямо как у наших либералов.
Обратите внимание на описание элемента pool в vrd файле. У меня в серверной базе сеансы веб-сервисов вполне себе работают параллельно. Пока работает один вызов, успевает отработать другой. IIS 7, 1С 8.3.6 А в (19) анонсировано кеширование сеансов, сеанс сможет иметь состояние между вызовами, очередной вызов сможет использовать ранее созданный сеанс. |
|||
25
DmitrO
21.09.16
✎
08:51
|
(24)+уточнение
1С 8.3.8.2054 совместимость 8.3.6 |
|||
26
Serginio1
21.09.16
✎
13:50
|
(0) И настрой Default.vrd
http://yellow-erp.com/page/guides/adm/service-files-description-and-location/#DEFAULTVRD |
|||
27
vs84
21.09.16
✎
17:11
|
У меня было указано в настройках рабочего сервера количество соединений на процесс 2, указал 20 стало проглатывать вроде параллельнее, чем было. Ощущение, что именно параллельно могут где-то 10 запросов выполняться.
(26) по-умолчанию (если ничего не настраивать): size = 100, maxAge = 20. Как то не понимаю, какими значениями тут можно оптимизировать. Есть идеи? |
|||
28
Serginio1
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. |
|||
29
vs84
21.09.16
✎
17:38
|
(28) спасибо, попробую
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |