|
Вопрос по производительности веб-сервисов | ☑ | ||
---|---|---|---|---|
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) благодарю за компетентное мнение, буду копать последовательно — замер выполнения запроса, платформа, апач
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |