我对InfluxDB非常陌生,最初,我安装了1.8版,但后来升级到了2.0版。我认为这是一种开箱即用的方法,目前,我能够使用PHP的https://github.com/influxdata/influxdb-client-php客户端库和批处理5000设置插入到influx中,超时时间为30秒。
我已经创建了两个具有24小时保留期的存储桶,一个用于15分钟间隔数据,另一个用于60分钟间隔数据。这个插入率大约是。每小时两千一百万。目前没有其他查询在服务器上运行。
我还没有考虑到基数,我正在尝试向下-首先实现,然后优化路径,并期望摄取运行缓慢,但不会崩溃。以下是虚拟机上htop的快照,显示了InfluxDB的资源利用率。它持续使用大量的RAM,并且在运行6小时后被OOM Killer杀死。
发布于 2021-08-03 03:41:59
您定义的模式是什么?你应该首先检查你的序列基数,以减少资源的使用,因为你需要插入大量的数据。InfluxDB使用时间序列索引作为时间序列索引,将频繁访问的数据提取到内存中。级数基数可以通过以下公式计算:
series_cardinality = num_of_bucket * num_of_measurement * num_of_values_of_each_tag * num_of_field_keys如果你有无界的标签或测量值,这将导致失控的系列基数。因此,只需选择一个近似的模式,或者限制标记和测量值,您就可以改进所需的资源。
发布于 2021-08-29 18:05:46
我建议在你还不熟悉influxdb的时候考虑其他的选择。高基数问题在时间序列数据库中非常常见,而涌入在这里显示了平庸的结果。看起来你提到的库使用的是influx线路协议,所以你可以试试VictoriaMetrics。看一看关于ingestion或high cardinality benchmarks的文章,看看我为什么推荐切换。
https://stackoverflow.com/questions/68201921
复制相似问题