Плохая производительность WSO2 DAS для входящих событий?

Мы используем WSO2 DAS 3.1.0 для получения событий от WSO2 API-Manager и отправки в базу данных.

Если мы посылаем в DAS, может быть, 70-100 событий в секунду в течение 4-5 часов, производительность медленно ухудшается, и он начинает «отставать». Сначала мы подозревали проблему с отправкой результирующих событий в нашу базу данных (у нас есть приемник событий, план выполнения (который суммирует события в секунду) и издатель в нашу базу данных), но теперь мы пришли к выводу, что это не так. Проблема в том, что база данных вообще без проблем справляется с нагрузкой.

Чтобы изолировать проблему, которую мы имеем, например. добавили издателя событий в файл из приемника входящих событий (до того, как мы обработаем какой-либо план выполнения), и мы видим, что когда производительность DAS ухудшается на несколько секунд, для этого издателя также нет вывода; следовательно, проблема заключается в обработке входящих событий (мы также добавили очередь между отправкой событий в нашу базу данных, чтобы гарантировать отсутствие обратного давления на обработку входящих событий).

Однако действительно странная часть заключается в том, что когда происходит такое поведение (ухудшается производительность обработки входящих событий в DAS), нет никакого способа выйти из этого, кроме перезапуска всего сервера (затем он снова начинает работать без проблем в течение нескольких часов). Даже если мы перестанем отправлять события на сервер на несколько дней, когда мы начинаем отправлять на сервер даже 1-2 события, между обработкой всех событий проходит несколько секунд (и, таким образом, сразу "отстает" от входящих событий). Как будто производительность при обработке входящих событий становится экспоненциально медленнее, пока мы не перезапустим DAS.

Был бы очень рад любым потенциальным подсказкам относительно того, где внести изменения, чтобы это поведение не происходило (очистка внутренних событий также не имеет никакого эффекта).


person Christian Morin    schedule 13.11.2017    source источник
comment
Об аналогичной проблеме сообщалось ранее в wso2.org/jira/browse/DAS-527. и это исправляется. Вы можете попробовать обновить продукт с помощью диспетчера обновлений WSO2 на странице wso2.com/updates/wum и посмотреть, проблема исправлена   -  person Sajith Eshan    schedule 13.11.2017


Ответы (1)


После долгой отладки мы наконец нашли причину этого.

В наших утверждениях Siddhi мы используем «группировать по» с динамически изменяющимися временными метками, что, как оказалось, обрабатывается крайне неэффективно, как описано в этой ошибке: https://github.com/wso2/siddhi/issues/431.

После исправления указанных классов проблема исчезла (но в настоящее время все еще существует ошибка, из-за которой продукт получает OOM, поскольку он не выпускает динамическую информацию «группировать по»).

person Christian Morin    schedule 19.01.2018