InfluxDB中的慢聚合查询和高CPU使用率

时间:2019-05-13 18:19:09

标签: cpu influxdb

  1. 我们对InfluxDB有一个非常烦人的问题(无集群)。我们的InfluxDB版本是1.7。 作为业务需求的一部分,我们存储事件的点(或数据)。有时我们会达到高峰(一天约有2000万个事件)。

我们有2个标签键-tag1,tag2和键值-value1。

我们跑步后的基数:

SHOW SERIES CARDINALITY ON db1

是24。

特别是对于具有20亿个点的测量“测量1”,我们只有1个系列(我们只有一对键tag1和tag2的值):

measurement1,tag1=tag1value,tag2=tag2value

现在,正如我所说,如果在选定的时期内我们最多可以拥有2000万积分。

SELECT SUM(someDoubleValue) AS result FROM measurement1 WHERE time > '2019-04-15T21:00:00Z' AND time < '2019-05-17T20:59:59.999Z' AND (tag1='1234567') GROUP BY time(30d, 21h) FILL(0);

6-7秒后返回此查询,但它消耗了我们CPU的80-100%。

现在基数很低(也许我可能是错的-还有另一种方法可以验证我们的基数很低吗?)。

  1. 我们要解决的另一个问题是,在某些流程中,我们可以并行调用2-3个查询。当然,这会导致所有这些服务器都失败(我们的客户端超时)。

我们试图弄清楚这是否是分片问题-我们使用的默认分片为1周,因此我们认为查询2个月应该不是问题。

我们提高了机器功率,但是没有运气-从i3-large到i3-xlarge(AWS)。

我们正在尝试确定这是InfluxDB中的问题,还是我们的测量配置有误。

1 个答案:

答案 0 :(得分:0)

您是否使用tsm索引?我们的tsi索引可以改善性能,这可能会有所帮助。

https://docs.influxdata.com/influxdb/v1.7/concepts/tsi-details/