Apache SuperSet 非常慢

Bra*_*chi 8 apache-superset

关于如何让超级组更快有什么建议吗?

缓存好像是从缓存加载全量数据,我以为它只从缓存加载旧数据,而从数据库加载实时数据,不是这样的吗?

一些并行处理怎么样?

小智 5

该答案自 Superset 0.37.0 起有效。

目前,仪表板性能受到几个不同因素的影响。我将在下面列举它们以及提高性能的方法:

  1. 数据库并发限制可能会对仪表板性能产生影响。仪表板通过并发 Web 请求并行加载其信息。确保提供的数据库用户允许足够的并发性,以便查询不会在数据库层排队。
  2. 缓存性能您的缓存层应该能够极其快速地返回多个结果(如果不是并行的话)。我们已经成功利用 S3 作为缓存。
  3. 缓存命中百分比Superset 仅针对与最近运行的查询完全匹配的查询来命中缓存。否则,完整查询将落入底层分析数据库(在本例中为 Druid)。您可以通过在仪表板上使用不太精细的分辨率来减少 Druid 上的查询负载 - 如果可以降低更新频率,比如一天几次而不是实时更新,这可能会命中除其他请求之外的所有请求的缓存比正在考虑的新时期中的第一个请求。
  4. Python Web 进程并发限制确保您的 Web 应用程序服务器可以处理足够的并行请求。浏览器会同时请求多个图表数据,系统需要能够并行处理这些请求。
  5. 图表查询性能由于数据被频繁请求,尤其是来自 Druid 等数据库的实时数据,优化图表运行的查询可能非常有用。我会查看正在利用的任何虚拟数据源,看看它们是否可以实现或变得更加高效。
  6. Web 浏览器并发请求限制默认情况下,大多数 Web 浏览器都会限制可以向同一 FQDN 发出的并发请求数。如果同一仪表板上有超过 6 个图表,则平衡运行 Superset 的多个 FQDN 之间的请求以绕过此浏览器限制会很有帮助。在 Github 上的问题历史记录中有更多关于该方法的信息,但 Superset 确实支持这种类型的配置。

社区对随着时间的推移提高性能非常感兴趣,因此有人建议将所有分析查询移至 Celery 以及进行其他架构更改以提高性能。我希望这个描述对您有所帮助,并且这里的一些内容可以帮助您找到问题!