InfluxDB 表现出一种特殊的行为,其中相同的查询需要不同的时间来执行。
我对包含 7900 万条记录的测量有一个简单的“选择”查询。通常查询需要 180 秒才能完成,但如果我执行相同的查询 6 到 8 次,响应时间会增加大约 10 倍。同时,系统没有显示任何压力迹象。几个小时后问题会自行解决。
我已经尝试重新启动流入进程和它所在的服务器,但这并没有任何区别。即使查询正在运行,机器的 cpu 和内存利用率也非常低。我什至一次不会运行多个查询。
这是我正在运行的查询:
SELECT max(float_value) FROM may_data WHERE time >= 1525132800000000000 AND time < 1527811200000000000 AND float_value >= 0 AND float_value <= 9999 GROUP BY dev_id my_data
我也使用“min”和“count”函数获得了相同的响应时间。我也尝试在没有 WHERE 子句和 GROUP BY 子句的情况下运行这些查询,但它也比通常的执行时间多花费了大约 10 倍的时间。
设置细节:
- InfluxDB 1.5.3 版
- 操作系统:CentOS 7
- 内核版本:(3.10.0-862.3.3.el7.x86_64)
- 2 个 VCPU 内核
- 8GB 内存。
如果有人能解释我如何进一步调试或解决这个问题,我将不胜感激。