Influxdb 如何为XDB连续查询执行留出空间?
我有很多XDB连续查询(CQ)用于在一段时间内多次减少数据采样。有一次,负载变得很高,在执行连续查询时,XDB内存不足 假设我有10个CQ,所有10个CQ一次在XDB中执行。这会严重影响记忆。我不确定是否有任何方法可以均匀地分配空间,或者在一个接一个地执行每个CQ时有一些延迟。我的猜测是,同时执行所有CQ会导致XDB崩溃。所有CQ都在XDB配置中指定。我希望有一种方法可以在流入配置中包含CQ之间的时间延迟。我不知道如何在配置中包含时间延迟。一个样本CQ:Influxdb 如何为XDB连续查询执行留出空间?,influxdb,influxql,Influxdb,Influxql,我有很多XDB连续查询(CQ)用于在一段时间内多次减少数据采样。有一次,负载变得很高,在执行连续查询时,XDB内存不足 假设我有10个CQ,所有10个CQ一次在XDB中执行。这会严重影响记忆。我不确定是否有任何方法可以均匀地分配空间,或者在一个接一个地执行每个CQ时有一些延迟。我的猜测是,同时执行所有CQ会导致XDB崩溃。所有CQ都在XDB配置中指定。我希望有一种方法可以在流入配置中包含CQ之间的时间延迟。我不知道如何在配置中包含时间延迟。一个样本CQ: CREATE CONTINUOUS QU
CREATE CONTINUOUS QUERY "cq_volume_reads" ON "metrics"
BEGIN
SELECT sum(reads) as reads INTO rollup1.tire_volume FROM
"metrics".raw.tier_volume GROUP BY time(10m),*
END
我也不知道这是否是解决问题的最好办法。如果您对这种方法有任何想法或建议任何更好的方法,我们将不胜感激。在XDB中使用调试工具时,如果能得到一些建议,那就太好了。谢谢 @Rajan-一些评论:
- 这个。我的大部分建议都来自于此
- 你在使用反向引用吗?我看到您的示例CQ使用
-通配符通常与一起使用。否则,我认为您不需要包含按时间分组(10m),*
来表示按所有标记分组-它应该已经按所有标记分组*
- 如果您使用的是反向引用,则会为
数据库中的每个度量运行CQ。这可能是同时执行很多CQ,特别是如果您有许多这样定义的CQ度量
- 您可以使用
设置偏移量,但这也会影响聚合函数所用的时间间隔(按时间分组(10m,)
,在您的示例中),因此如果偏移量为1分钟,则时间戳将是13:11->13:21之间的数据总和,而不是13:10->13:20。这将抵消执行,但可能不适用于下采样用例。从信号处理的角度来看,1分钟的偏移量不会改变下采样数据的有效性,但它可能会产生不必要的图形显示问题,具体取决于您所做的操作。我建议你试试这个办法sum
- 否则,您可以尝试减少降采样CQ的数量,以减少内存压力或在更大的时间尺度(例如20m)上进行降采样,或者最后增加XDB可用的硬件资源
- 用于管理内存使用情况。1.8中的调整不多,但也有一些调整
- 这个。我的大部分建议都来自于此
- 你在使用反向引用吗?我看到您的示例CQ使用
-通配符通常与一起使用。否则,我认为您不需要包含按时间分组(10m),*
来表示按所有标记分组-它应该已经按所有标记分组*
- 如果您使用的是反向引用,则会为
数据库中的每个度量运行CQ。这可能是同时执行很多CQ,特别是如果您有许多这样定义的CQ度量
- 您可以使用
设置偏移量,但这也会影响聚合函数所用的时间间隔(按时间分组(10m,)
,在您的示例中),因此如果偏移量为1分钟,则时间戳将是13:11->13:21之间的数据总和,而不是13:10->13:20。这将抵消执行,但可能不适用于下采样用例。从信号处理的角度来看,1分钟的偏移量不会改变下采样数据的有效性,但它可能会产生不必要的图形显示问题,具体取决于您所做的操作。我建议你试试这个办法sum
- 否则,您可以尝试减少降采样CQ的数量,以减少内存压力或在更大的时间尺度(例如20m)上进行降采样,或者最后增加XDB可用的硬件资源
- 用于管理内存使用情况。1.8中的调整不多,但也有一些调整
- @Rajan-几点评论: