Firebase实时数据库';每天都会发生未知的未决问题

Firebase实时数据库';每天都会发生未知的未决问题,firebase,firebase-realtime-database,Firebase,Firebase Realtime Database,我们在Firebase上有一个移动应用程序服务 我们的服务的并发连接几乎为5000~10000 我知道,这与性能限制无关 但是,我们有一个关于实时数据库挂起(1~3分钟)的问题 它每天晚上都会发生,即使连接很少 由于这些未决问题,我们开始使用Elasticsearch记录主实时数据库 可以详细检查此未决问题 如果发生db挂起,我们的应用程序将在1~3分钟内突然禁用(db负载3%->100%) 我们可以同时检查几乎并发用户的“并发连接/并发断开连接” 我附上了一个相关的屏幕截图。此问题也可以在GC

我们在Firebase上有一个移动应用程序服务

我们的服务的并发连接几乎为5000~10000

我知道,这与性能限制无关

但是,我们有一个关于实时数据库挂起(1~3分钟)的问题

它每天晚上都会发生,即使连接很少

由于这些未决问题,我们开始使用Elasticsearch记录主实时数据库

可以详细检查此未决问题

如果发生db挂起,我们的应用程序将在1~3分钟内突然禁用(db负载3%->100%)

我们可以同时检查几乎并发用户的“并发连接/并发断开连接”

我附上了一个相关的屏幕截图。此问题也可以在GCP的Stackdriver中检查

我们猜想这个问题是由于Firebase分配性能的逻辑产生的,因为白天和夜间的使用情况不同

我3天前联系了支持部门,但尚未收到回复

所以,我想知道是否有人有同样的问题或知道这个问题

  • 抓获堆垛机司机

  • 捕获麋鹿


听起来您每天都在同一时间执行批量读写操作。这种类型的操作通常来自批处理,与应用程序的活动用户数无关。事实上,批量读/写将锁定应用程序的常规用户

这种批处理过程的一个例子可能是每天晚上将Firebase实时数据库中的数据与Elasticsearch同步的批量读取,但还有更多选项

如果确实存在导致此负载的批处理过程,则您需要研究:

  • 或者将流程拆分为多个较小的步骤,以便它们可以与来自常规客户机的流量相互交错
  • 或者在数据库备份上运行相同类型的进程。由于您将针对本地文件运行,因此它不会干扰常规客户端,并且备份是通过带外进程进行的(因此也不会造成干扰)

每天的时间不一样,也不规则。我们只知道它只在夜间发生1~2次。如果你的猜测是真的,kibana图的值应该是不同的。问题发生时,数据库吞吐量不高。你可以在图表中看到足够的信息。但是DB负载突然从0.5%变为100%。您是否最终发现了导致此问题的原因?我们在一天中随机看到了类似的等待时间峰值,而数据库使用率没有实际增加。