В базе данных Firebase в реальном времени, как я могу отлаживать скачки нагрузки?

Несколько клиентов (веб-приложение, мобильное приложение) используют данные непосредственно из базы данных в реальном времени.

Посмотрите на прикрепленный ниже график: нет никаких изменений в использовании database connections или download во время всплеска нагрузки на базу данных.

А также мы не вносили никаких изменений в код клиента/сервера (функции) за последние пару месяцев.

я не мог понять; что вызывает нагрузку при использовании базы данных!

Как я могу отладить эту проблему?

Ценю вашу помощь!

введите здесь описание изображения

введите здесь описание изображения

введите здесь описание изображения


person Karthi R    schedule 03.02.2018    source источник
comment
Вы когда-нибудь догадывались об этом?   -  person NudeCanalTroll    schedule 03.01.2019
comment
@NudeCanalTroll Теперь я не часто вижу эти случайные всплески.   -  person Karthi R    schedule 04.01.2019


Ответы (1)


После долгого решения чего-то похожего на эту проблему и обращения практически ко всем в системе поддержки Firebase я пришел к следующим выводам:

  1. Запросы к базе данных в реальном времени. База данных Firebase в реальном времени не может обрабатывать запросы к большим объемам данных (например, >5 миллионов узлов), независимо от того, индексируете вы их или нет. Чтобы решить эту проблему, убедитесь, что вы индексируете как можно меньше конечных точек.

  2. Холодный запуск. Иногда функциям требуется некоторое время для запуска, и они могут немного задерживаться. Как только они начнут работать, они вызовут нагрузку на саму базу данных. У этой проблемы нет решения, но вы должны оптимизировать свои функции, чтобы они выполнялись как можно быстрее (см.: Советы и рекомендации по работе с облачным кодом Firebase).

  3. Поддержка Firebase. Поговорите со службой поддержки Firebase, они обычно могут указать вам правильное направление.

Больше всего мне помогло удаление ненужных правил indexOn, обновление до nodeJS 10 и расширение лимитов памяти для некоторых облачных функций. Кроме того, сейчас я нахожусь на пути к тому, чтобы перейти на Firestore в качестве серверного решения.

person Amos Wazana    schedule 28.06.2020