What is the difference between the Firebase io/database_load and the io/utilization metric?

Viewed 227

I'm trying to understand and optimise the traffic on a Firebase Realtime Database. I'm building some dashboards in stackdriver to help me but I can't find any good information about the difference between io/database_load and the io/utilization.

It seems that the io/utilization stat is the one that the firebase console uses in the load chart but I could use some guidance on how to interpret the io/database_load metric. The load metric seems to breach 100% much more frequently than the utilization metric.

Can anyone help?

1 Answers

The Firebase Realtime Database defines its load factor as the pressure of operations you're trying to perform in a certain timeframe compared to the operations the database can complete in that timeframe. Any value over 100% means that the database can't complete all the operations that are requested, and that some requests are being queued up.

If >100% load happens very sporadically during peak user loads, then this may not be a problem, as queuing operation up is likely exactly what you want.

But if you see >100% load regularly due to peak user load, you'll want to consider if you can reduce the data pressure per user. If you've already minimized that, consider how you can shard the users over multiple databases.

If >100% load happens cyclicly at fixed times, it is typically caused by batch processes that you have running on the database, such as nightly backups, or other bulk processing operations. If that is the cause, consider running such operations either on the automatic backup that Firebase can provide, or run them as more granular operations interspersed with the regular usage of your app.

Also see:

Related