Профилируйте свою базу данных

Оцените производительность вашей Firebase Realtime Database с помощью инструмента профилирования базы данных, встроенного в Firebase CLI . Инструмент профилирования регистрирует всю активность в вашей базе данных за определенный период времени, а затем генерирует подробный отчет. Используйте подробный отчет для устранения проблем с производительностью вашей базы данных, выявления проблемных областей и сокращения количества неиндексированных запросов.

Создать профиль

  1. Прежде чем начать профилирование вашей Firebase Realtime Database , убедитесь, что вы используете последнюю версию Firebase CLI и инициализировали её для базы данных и проекта, которые хотите профилировать. Обратите внимание, что для профилирования вы должны быть редактором или владельцем этого проекта.

  2. Начните профилирование вашей базы данных с помощью следующей команды:

    firebase database:profile
    Профайлер отображает сообщение о состоянии по мере записи операций из вашей базы данных и построения профиля.

  3. Нажмите Enter , чтобы завершить заполнение профиля и отобразить результаты.

Интерпретируйте полученные результаты

Инструмент профилирования собирает данные о работе вашей базы данных и отображает результаты в трех основных категориях: скорость , пропускная способность и неиндексированные запросы .

Скорость

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

Отчет о скорости включает следующие характеристики:

  • Путь: путь в вашей базе данных, где были выполнены операции. Если дочерних узлов более 25, инструмент профилирования объединяет их в путь к родительскому узлу и добавляет символ $wildcard . В отчете вы можете увидеть корневой каталог вашей базы данных, обозначенный косой чертой / .
  • Count: Количество операций, выполненных по заданному пути.
  • Средняя скорость выполнения: среднее время, необходимое серверу для выполнения бизнес-логики, необходимой для обработки конкретного типа операции на данном пути. Измеряемый здесь временной интервал начинается после интервала, измеренного с помощью параметра «Среднее время ожидания», описанного ниже.
  • Среднее время ожидания: среднее время, которое запросы проводят в очереди до выполнения. Эта задержка характерна для всех запросов, инициированных клиентом. Общая задержка запроса на стороне сервера приблизительно равна сумме времени ожидания запроса и скорости его выполнения.
  • Отказано в доступе: количество операций по указанному пути, заблокированных правилами базы данных Firebase .
Отчет о скорости по типу операции
Скорость выполнения чтения Время ответа сервера на запросы клиентов на чтение данных из базы данных. Время выполнения чтения обычно зависит от объема считываемых данных, но даже при небольших объемах чтения может наблюдаться задержка из-за предварительной выборки данных из кэша.
Скорость выполнения записи Время ответа сервера на запросы клиентов о записи данных в базу данных. Время выполнения записи зависит от объема записываемых данных.
Скорость выполнения подключения Время ответа сервера на запросы на установление соединения с клиентами базы данных. Задержка запросов на соединение в основном обусловлена ​​серверными операциями по управлению соединением, выполняемыми в оперативной памяти.
Скорость выполнения трансляции

Время, необходимое серверу для рассылки данных клиентам, прослушивающим указанный путь для получения обновлений в режиме реального времени.

Свойство Count в отчете о скорости широковещательной рассылки суммирует количество произошедших широковещательных рассылок, а не количество клиентов, получивших информацию. Например, если 10 клиентов прослушивали определенный маршрут, и сервер отправил широковещательное сообщение всем 10 клиентам, счетчик широковещательных рассылок будет отражать только 1 рассылку, даже если данные получили 10 клиентов.

Свойство «Доступ запрещен» не включено в отчет «Скорость трансляции».

Пропускная способность

The Bandwidth Report provides insight on how much data your database consumes across incoming and outgoing operations. You shouldn't use the Bandwidth Report to estimate billing, however, because it doesn't include bandwidth used for other operations, like profiling your database. The Bandwidth Report roughly estimates the payload size of the data consumed by read, write, and broadcast operations to and from your database. It's a tool that measures performance, not one that forecasts billing.

Отчет о пропускной способности включает следующие характеристики:

  • Путь: путь в вашей базе данных, где были выполнены операции. Если дочерних узлов более 25, инструмент профилирования объединяет их в один родительский путь.

  • Итого: Общее количество исходящих или входящих байтов, использованных во всех операциях по заданному пути.

  • Count: Количество операций, выполненных по заданному пути.

  • Среднее значение: среднее количество загруженных или выгруженных байтов по всем операциям на данном пути (байтов/запись или байтов/чтение).

Отчет о пропускной способности
Загруженные байты Данные, получаемые в ходе операций чтения и широковещательной рассылки, отправляются через клиентские SDK и REST API.
Загруженные байты Данные обрабатываются посредством запросов на запись, поступающих на сервер базы данных. Удаления отображаются как записи с нулевым объемом входящих данных.

Неиндексированные запросы

Неиндексированные запросы могут быть ресурсоемкими, поскольку клиенты загружают все данные из определенного места, а затем выполняют над ними запросы. Это потребляет больше пропускной способности, чем необходимо. Для оптимизации производительности базы данных обрабатывайте как можно больше неиндексированных запросов.

В отчете «Неиндексированные запросы» отображаются следующие свойства:

  • Путь: путь в вашей базе данных, где были выполнены неиндексированные запросы.
  • Индекс: Правило, которое следует добавить для обработки запросов, не проиндексированных в индексе. Подробнее об индексировании см. в разделе «Индексируйте свои данные» .
  • Count: Количество неиндексированных запросов, выполненных по указанному пути.

Расширенное профилирование

Чтобы увидеть все операции, обрабатываемые вашей базой данных, используйте флаг --raw при профилировании базы данных следующим образом:

firebase database:profile --raw

Исходные данные также включают информацию о клиенте для каждой операции, такую ​​как строки userAgent и IP-адреса. Подробнее о различных операциях, профилируемых в вашей Firebase Realtime Database можно узнать в разделе «Типы операций Firebase Realtime Database .

Инструмент профилирования: не инструмент для выставления счетов.

Не используйте инструмент профилирования для оценки стоимости полосы пропускания. Инструмент профилирования предназначен для получения общей картины производительности вашей базы данных, для мониторинга операций и устранения неполадок, а не для оценки стоимости услуг. Он не учитывает сетевой трафик, а лишь записывает приблизительную оценку объема данных приложения, отправляемых в ответах.

Ниже приведены некоторые распространенные примеры сетевого трафика, оплачиваемого Firebase, который не покрывается вашим профилем базы данных:

  • Protocol overhead: Some additional traffic between the server and clients is necessary to establish and maintain a session. Depending on the underlying protocol, this traffic might include: Firebase Realtime Database's realtime protocol overhead, WebSocket overhead, and HTTP header overhead. Each time a connection is established, this overhead, combined with any SSL encryption overhead, contributes to the connection costs. Although this is typically not a large amount of bandwidth, it can be substantial if your payloads are tiny or you make frequent, short connections.
  • SSL encryption overhead: There is a cost associated with the SSL encryption overhead necessary for secure connections. On average, this cost is approximately 3.5KB for the initial handshake, and approximately 40B for TLS record headers on each outgoing message. For most apps, this is a small percentage of your bill. However, this could become a large percentage if your specific case requires a lot of SSL handshakes. For example, devices that don't support TLS session tickets might require large numbers of SSL connection handshakes.

Узнайте больше о том, как понять и рассчитать свой счет за электроэнергию .

,

Оцените производительность вашей Firebase Realtime Database с помощью инструмента профилирования базы данных, встроенного в Firebase CLI . Инструмент профилирования регистрирует всю активность в вашей базе данных за определенный период времени, а затем генерирует подробный отчет. Используйте подробный отчет для устранения проблем с производительностью вашей базы данных, выявления проблемных областей и сокращения количества неиндексированных запросов.

Создать профиль

  1. Прежде чем начать профилирование вашей Firebase Realtime Database , убедитесь, что вы используете последнюю версию Firebase CLI и инициализировали её для базы данных и проекта, которые хотите профилировать. Обратите внимание, что для профилирования вы должны быть редактором или владельцем этого проекта.

  2. Начните профилирование вашей базы данных с помощью следующей команды:

    firebase database:profile
    Профайлер отображает сообщение о состоянии по мере записи операций из вашей базы данных и построения профиля.

  3. Нажмите Enter , чтобы завершить заполнение профиля и отобразить результаты.

Интерпретируйте полученные результаты

Инструмент профилирования собирает данные о работе вашей базы данных и отображает результаты в трех основных категориях: скорость , пропускная способность и неиндексированные запросы .

Скорость

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

Отчет о скорости включает следующие характеристики:

  • Путь: путь в вашей базе данных, где были выполнены операции. Если дочерних узлов более 25, инструмент профилирования объединяет их в путь к родительскому узлу и добавляет символ $wildcard . В отчете вы можете увидеть корневой каталог вашей базы данных, обозначенный косой чертой / .
  • Count: Количество операций, выполненных по заданному пути.
  • Средняя скорость выполнения: среднее время, необходимое серверу для выполнения бизнес-логики, необходимой для обработки конкретного типа операции на данном пути. Измеряемый здесь временной интервал начинается после интервала, измеренного с помощью параметра «Среднее время ожидания», описанного ниже.
  • Среднее время ожидания: среднее время, которое запросы проводят в очереди до выполнения. Эта задержка характерна для всех запросов, инициированных клиентом. Общая задержка запроса на стороне сервера приблизительно равна сумме времени ожидания запроса и скорости его выполнения.
  • Отказано в доступе: количество операций по указанному пути, заблокированных правилами базы данных Firebase .
Отчет о скорости по типу операции
Скорость выполнения чтения Время ответа сервера на запросы клиентов на чтение данных из базы данных. Время выполнения чтения обычно зависит от объема считываемых данных, но даже при небольших объемах чтения может наблюдаться задержка из-за предварительной выборки данных из кэша.
Скорость выполнения записи Время ответа сервера на запросы клиентов о записи данных в базу данных. Время выполнения записи зависит от объема записываемых данных.
Скорость выполнения подключения Время ответа сервера на запросы на установление соединения с клиентами базы данных. Задержка запросов на соединение в основном обусловлена ​​серверными операциями по управлению соединением, выполняемыми в оперативной памяти.
Скорость выполнения трансляции

Время, необходимое серверу для рассылки данных клиентам, прослушивающим указанный путь для получения обновлений в режиме реального времени.

Свойство Count в отчете о скорости широковещательной рассылки суммирует количество произошедших широковещательных рассылок, а не количество клиентов, получивших информацию. Например, если 10 клиентов прослушивали определенный маршрут, и сервер отправил широковещательное сообщение всем 10 клиентам, счетчик широковещательных рассылок будет отражать только 1 рассылку, даже если данные получили 10 клиентов.

Свойство «Доступ запрещен» не включено в отчет «Скорость трансляции».

Пропускная способность

The Bandwidth Report provides insight on how much data your database consumes across incoming and outgoing operations. You shouldn't use the Bandwidth Report to estimate billing, however, because it doesn't include bandwidth used for other operations, like profiling your database. The Bandwidth Report roughly estimates the payload size of the data consumed by read, write, and broadcast operations to and from your database. It's a tool that measures performance, not one that forecasts billing.

Отчет о пропускной способности включает следующие характеристики:

  • Путь: путь в вашей базе данных, где были выполнены операции. Если дочерних узлов более 25, инструмент профилирования объединяет их в один родительский путь.

  • Итого: Общее количество исходящих или входящих байтов, использованных во всех операциях по заданному пути.

  • Count: Количество операций, выполненных по заданному пути.

  • Среднее значение: среднее количество загруженных или выгруженных байтов по всем операциям на данном пути (байтов/запись или байтов/чтение).

Отчет о пропускной способности
Загруженные байты Данные, получаемые в ходе операций чтения и широковещательной рассылки, отправляются через клиентские SDK и REST API.
Загруженные байты Данные обрабатываются посредством запросов на запись, поступающих на сервер базы данных. Удаления отображаются как записи с нулевым объемом входящих данных.

Неиндексированные запросы

Неиндексированные запросы могут быть ресурсоемкими, поскольку клиенты загружают все данные из определенного места, а затем выполняют над ними запросы. Это потребляет больше пропускной способности, чем необходимо. Для оптимизации производительности базы данных обрабатывайте как можно больше неиндексированных запросов.

В отчете «Неиндексированные запросы» отображаются следующие свойства:

  • Путь: путь в вашей базе данных, где были выполнены неиндексированные запросы.
  • Индекс: Правило, которое следует добавить для обработки запросов, не проиндексированных в индексе. Подробнее об индексировании см. в разделе «Индексируйте свои данные» .
  • Count: Количество неиндексированных запросов, выполненных по указанному пути.

Расширенное профилирование

Чтобы увидеть все операции, обрабатываемые вашей базой данных, используйте флаг --raw при профилировании базы данных следующим образом:

firebase database:profile --raw

Исходные данные также включают информацию о клиенте для каждой операции, такую ​​как строки userAgent и IP-адреса. Подробнее о различных операциях, профилируемых в вашей Firebase Realtime Database можно узнать в разделе «Типы операций Firebase Realtime Database .

Инструмент профилирования: не инструмент для выставления счетов.

Не используйте инструмент профилирования для оценки стоимости полосы пропускания. Инструмент профилирования предназначен для получения общей картины производительности вашей базы данных, для мониторинга операций и устранения неполадок, а не для оценки стоимости услуг. Он не учитывает сетевой трафик, а лишь записывает приблизительную оценку объема данных приложения, отправляемых в ответах.

Ниже приведены некоторые распространенные примеры сетевого трафика, оплачиваемого Firebase, который не покрывается вашим профилем базы данных:

  • Protocol overhead: Some additional traffic between the server and clients is necessary to establish and maintain a session. Depending on the underlying protocol, this traffic might include: Firebase Realtime Database's realtime protocol overhead, WebSocket overhead, and HTTP header overhead. Each time a connection is established, this overhead, combined with any SSL encryption overhead, contributes to the connection costs. Although this is typically not a large amount of bandwidth, it can be substantial if your payloads are tiny or you make frequent, short connections.
  • SSL encryption overhead: There is a cost associated with the SSL encryption overhead necessary for secure connections. On average, this cost is approximately 3.5KB for the initial handshake, and approximately 40B for TLS record headers on each outgoing message. For most apps, this is a small percentage of your bill. However, this could become a large percentage if your specific case requires a lot of SSL handshakes. For example, devices that don't support TLS session tickets might require large numbers of SSL connection handshakes.

Узнайте больше о том, как понять и рассчитать свой счет за электроэнергию .

,

Оцените производительность вашей Firebase Realtime Database с помощью инструмента профилирования базы данных, встроенного в Firebase CLI . Инструмент профилирования регистрирует всю активность в вашей базе данных за определенный период времени, а затем генерирует подробный отчет. Используйте подробный отчет для устранения проблем с производительностью вашей базы данных, выявления проблемных областей и сокращения количества неиндексированных запросов.

Создать профиль

  1. Прежде чем начать профилирование вашей Firebase Realtime Database , убедитесь, что вы используете последнюю версию Firebase CLI и инициализировали её для базы данных и проекта, которые хотите профилировать. Обратите внимание, что для профилирования вы должны быть редактором или владельцем этого проекта.

  2. Начните профилирование вашей базы данных с помощью следующей команды:

    firebase database:profile
    Профайлер отображает сообщение о состоянии по мере записи операций из вашей базы данных и построения профиля.

  3. Нажмите Enter , чтобы завершить заполнение профиля и отобразить результаты.

Интерпретируйте полученные результаты

Инструмент профилирования собирает данные о работе вашей базы данных и отображает результаты в трех основных категориях: скорость , пропускная способность и неиндексированные запросы .

Скорость

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

Отчет о скорости включает следующие характеристики:

  • Путь: путь в вашей базе данных, где были выполнены операции. Если дочерних узлов более 25, инструмент профилирования объединяет их в путь к родительскому узлу и добавляет символ $wildcard . В отчете вы можете увидеть корневой каталог вашей базы данных, обозначенный косой чертой / .
  • Count: Количество операций, выполненных по заданному пути.
  • Средняя скорость выполнения: среднее время, необходимое серверу для выполнения бизнес-логики, необходимой для обработки конкретного типа операции на данном пути. Измеряемый здесь временной интервал начинается после интервала, измеренного с помощью параметра «Среднее время ожидания», описанного ниже.
  • Среднее время ожидания: среднее время, которое запросы проводят в очереди до выполнения. Эта задержка характерна для всех запросов, инициированных клиентом. Общая задержка запроса на стороне сервера приблизительно равна сумме времени ожидания запроса и скорости его выполнения.
  • Отказано в доступе: количество операций по указанному пути, заблокированных правилами базы данных Firebase .
Отчет о скорости по типу операции
Скорость выполнения чтения Время ответа сервера на запросы клиентов на чтение данных из базы данных. Время выполнения чтения обычно зависит от объема считываемых данных, но даже при небольших объемах чтения может наблюдаться задержка из-за предварительной выборки данных из кэша.
Скорость выполнения записи Время ответа сервера на запросы клиентов о записи данных в базу данных. Время выполнения записи зависит от объема записываемых данных.
Скорость выполнения подключения Время ответа сервера на запросы на установление соединения с клиентами базы данных. Задержка запросов на соединение в основном обусловлена ​​серверными операциями по управлению соединением, выполняемыми в оперативной памяти.
Скорость выполнения трансляции

Время, необходимое серверу для рассылки данных клиентам, прослушивающим указанный путь для получения обновлений в режиме реального времени.

Свойство Count в отчете о скорости широковещательной рассылки суммирует количество произошедших широковещательных рассылок, а не количество клиентов, получивших информацию. Например, если 10 клиентов прослушивали определенный маршрут, и сервер отправил широковещательное сообщение всем 10 клиентам, счетчик широковещательных рассылок будет отражать только 1 рассылку, даже если данные получили 10 клиентов.

Свойство «Доступ запрещен» не включено в отчет «Скорость трансляции».

Пропускная способность

The Bandwidth Report provides insight on how much data your database consumes across incoming and outgoing operations. You shouldn't use the Bandwidth Report to estimate billing, however, because it doesn't include bandwidth used for other operations, like profiling your database. The Bandwidth Report roughly estimates the payload size of the data consumed by read, write, and broadcast operations to and from your database. It's a tool that measures performance, not one that forecasts billing.

Отчет о пропускной способности включает следующие характеристики:

  • Путь: путь в вашей базе данных, где были выполнены операции. Если дочерних узлов более 25, инструмент профилирования объединяет их в один родительский путь.

  • Итого: Общее количество исходящих или входящих байтов, использованных во всех операциях по заданному пути.

  • Count: Количество операций, выполненных по заданному пути.

  • Среднее значение: среднее количество загруженных или выгруженных байтов по всем операциям на данном пути (байтов/запись или байтов/чтение).

Отчет о пропускной способности
Загруженные байты Данные, получаемые в ходе операций чтения и широковещательной рассылки, отправляются через клиентские SDK и REST API.
Загруженные байты Данные обрабатываются посредством запросов на запись, поступающих на сервер базы данных. Удаления отображаются как записи с нулевым объемом входящих данных.

Неиндексированные запросы

Неиндексированные запросы могут быть ресурсоемкими, поскольку клиенты загружают все данные из определенного места, а затем выполняют над ними запросы. Это потребляет больше пропускной способности, чем необходимо. Для оптимизации производительности базы данных обрабатывайте как можно больше неиндексированных запросов.

В отчете «Неиндексированные запросы» отображаются следующие свойства:

  • Путь: путь в вашей базе данных, где были выполнены неиндексированные запросы.
  • Индекс: Правило, которое следует добавить для обработки запросов, не проиндексированных в индексе. Подробнее об индексировании см. в разделе «Индексируйте свои данные» .
  • Count: Количество неиндексированных запросов, выполненных по указанному пути.

Расширенное профилирование

Чтобы увидеть все операции, обрабатываемые вашей базой данных, используйте флаг --raw при профилировании базы данных следующим образом:

firebase database:profile --raw

Исходные данные также включают информацию о клиенте для каждой операции, такую ​​как строки userAgent и IP-адреса. Подробнее о различных операциях, профилируемых в вашей Firebase Realtime Database можно узнать в разделе «Типы операций Firebase Realtime Database .

Инструмент профилирования: не инструмент для выставления счетов.

Не используйте инструмент профилирования для оценки стоимости полосы пропускания. Инструмент профилирования предназначен для получения общей картины производительности вашей базы данных, для мониторинга операций и устранения неполадок, а не для оценки стоимости услуг. Он не учитывает сетевой трафик, а лишь записывает приблизительную оценку объема данных приложения, отправляемых в ответах.

Ниже приведены некоторые распространенные примеры сетевого трафика, оплачиваемого Firebase, который не покрывается вашим профилем базы данных:

  • Protocol overhead: Some additional traffic between the server and clients is necessary to establish and maintain a session. Depending on the underlying protocol, this traffic might include: Firebase Realtime Database's realtime protocol overhead, WebSocket overhead, and HTTP header overhead. Each time a connection is established, this overhead, combined with any SSL encryption overhead, contributes to the connection costs. Although this is typically not a large amount of bandwidth, it can be substantial if your payloads are tiny or you make frequent, short connections.
  • SSL encryption overhead: There is a cost associated with the SSL encryption overhead necessary for secure connections. On average, this cost is approximately 3.5KB for the initial handshake, and approximately 40B for TLS record headers on each outgoing message. For most apps, this is a small percentage of your bill. However, this could become a large percentage if your specific case requires a lot of SSL handshakes. For example, devices that don't support TLS session tickets might require large numbers of SSL connection handshakes.

Узнайте больше о том, как понять и рассчитать свой счет за электроэнергию .