Кто встречался с проблемой медленной работы WS под Апачем в linux версии 1C 8.2?

Настроен сервер 1С 8.2 с базой на PostgreSQL, на нем поднят WebService под апачем. Linux — скорее всего Debian, если надо — уточню.


Есть SOAP функция, которая возвращает данные в виде XML.


В конфигураторе запрос с ответом в пол мегабайта выполняется за 7 секунд, через WS — за 50+ секунд.

Некоторые запросы с ответом в 30Кб возвращаются вебсервисом за 50+ секунд, другие, даже большего объема — в районе пары секунд.

Найти зависимость между столь удручающей разницей во времени между разными запросами так и не удалось.


Таймауты везде увеличены.


Вопрос, у кого была похожая проблема и кто как ее борол?
  • Вопрос задан
  • 5012 просмотров
Решения вопроса 1
@Dementor
программист, архитектор, аналитик
Подобных проблем не было (было много других, которые намного хуже — вы даже не подозреваете сколько в линуксовом сервере 1С подводных камней).

Давайте посмотрим с точки зрения здравого смысла.

1) В конфигураторе запросы не выполняются — там происходит только конфигурирование и администрирование. Запросы вы выполняли скорее всего в тонком или толстом клиенте, который подключен к серверу. Поскольку вы упомянули конфигуратор, то склоняюсь к выводу, что речь идет именно о толстом клиенте с подключением к серверу в локальной сети по TCP.

2) Веб-сервисы у вас подняты на Apache и обслуживаются с помощью апачевского модуля, который подобно тонкому/толстому клиенту подключается к серверу 1С по TCP, получает от сервера данные, а далее возвращает ответ клиенту по HTTP(S).

На поверхности лежит вывод, что в обоих случаях сервер отрабатывает с одинаковой скоростью (если в моменты тестирования нагрузка был идентичной), а вот на обслуживание HTTP(s) запросов/ответов веб-сервером тратятся ваши лишние 50 секунд. Проверяйте в этом направлении — на 70% уверен, что или ваш Apache настроен через ж, или на нем кроме опубликованной 1С крутятся другие нагруженные приложения и время на 1С-вский модуль выделяется по остаточному принципу.

Еще вариант, что вы не все рассказали. Моя вторая версия, что данные запроса в толстом клиенте вы получаете единой выборкой, а вот веб-сервис вы делаете не на единичный запрос, а на каждый элемент выборки заново устанавливаете ws-соединение. При таком подходе даже на выделенном сервере скорость веб-сервисов в случае больших данных будет в сотни и тысячи раз медленнее чем работа в 1С-вских клиентах.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы