Имя: Пароль:
1C
 
Вопрос по производительности веб-сервисов
0 Dzenn
 
гуру
07.08.17
14:04
Добрый день, коллеги!

У одного из наших клиентов возникла проблема — при одновременном количестве обращений к веб-сервису порядка 200-300 он падает. Публикация поднята на апаче. Платформа — 1С:Предприятие 8.2 (8.2.17.153)

Другой информации пока нет. Куда копать для решения проблемы — пока не знаю.

У кого-нибудь есть опыт использования веб-сервисов под высокой нагрузкой?
1 drcrasher
 
07.08.17
14:04
а чочо с лицензиями?
2 Dzenn
 
гуру
07.08.17
14:07
(1) не могу сказать точно, но уверен, что веб-сервис ест одну лицензию
3 drcrasher
 
07.08.17
14:08
(2) а вот я не уверен. лицензия на каждый коннект к вебсервису выделяется
4 Юрий Лазаренко
 
07.08.17
14:15
(0) База файловая или скуль? Апач, я полагаю, 32-битный? Платформа очень старая для веб-сервисов, нужно хотя бы 8.3.9.1818, там веб-сервисы оптимизировали.
А вообще надо смотреть, что за запросы к базе делаются, сколько времени выполняется один запрос, может там база просто не справляется с такой нагрузкой.
5 Dzenn
 
гуру
07.08.17
14:20
(4) База скуль. Код веб-сервисов большой по объёму, лоскутный и неоптимизированный.
6 neckto
 
07.08.17
14:22
(0) Вопрос в том, что именно падает? Апач или Сервер 1С?
7 Dzenn
 
гуру
07.08.17
14:27
(6) могу только предполагать. Я склоняюсь к мысли, что это конфликт блокировок при выполнении транзакций на уровне скуля. Второе — старая платформа.
8 Юрий Лазаренко
 
07.08.17
14:27
(5) Ну открывайте консоль сервера и смотрите, сколько у вас там сеансов создается для веб-сервисов. Если один запрос обрабатывается несколько секунд, то все это время он держит соединение - по сути сеанс. При одновременном подключении 200 пользователей с такими запросами у вас поднимется 200 сеансов, что для сервера может быть тяжело.
В последних платформах один сеанс может обслуживать запросы сразу от нескольких пользователей (по очереди). Но это будет нормально работать, только если запросы небольшие по времени исполнения: 100, 200, 300 миллисекунд. Тогда одно соединение сможет прожевать запросы от десятка пользователей. Если же у вас запросы длятся по несколько секунд и больше, то надо менять систему работы - вместо одного длинного запроса использовать два-три коротких. Первым инициируете начало выполнения некоторого действия на сервере, а через пару-тройку секунд вторым  запросом забираете результат - все так же, как при фоновом выполнении процедур.
9 Юрий Лазаренко
 
07.08.17
14:30
(7) Проверь для начала, сколько времени занимает выполнение запросов. Если один запрос выполняется больше чем 500 миллисекунд, то это уже требует внимания. Если таких запросов не много (не более 5-10%), то и фиг с ними, но если больше, то нужна их оптимизация. А если есть запросы, выполняющиеся более 1,5 - 2 секунд, то их надо менять однозначно.
10 Юрий Лазаренко
 
07.08.17
14:33
Если Апач поставите 2.4 64 бита и платформу обновите, то уже только от этого существенно лучше станет работать.
11 Dzenn
 
гуру
07.08.17
14:35
(10) благодарю за компетентное мнение, буду копать последовательно — замер выполнения запроса, платформа, апач
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший