首页 > 其他分享 >influxdb优化建议

influxdb优化建议

时间:2024-05-29 20:33:04浏览次数:21  
标签:建议 数据 enabled 写入 InfluxDB 查询 influxdb 默认值 优化

#关闭上送开关
reporting-disabled = false

# bind-address = "127.0.0.1:8088"


#控制存储有关InfluxDB群集的元数据的Raft共识组的参数
[meta]
dir = "influxdb/var/lib/influxdb/meta"
#控制InfluxDB的实际分片数据的生存位置以及它从WAL中刷新的方式
[data]
dir = "influxdb/var/lib/influxdb/data"
wal-dir = "influxdb/var/lib/influxdb/wal"
#指定写入 WAL 文件后,在 fsync 到磁盘之前等待的时间。单位是毫秒(ms)
#增加 wal-fsync-delay 的值可以提高写入性能,但也会增加数据丢失的风险。因为当系统发生故障时,
#WAL 文件中未 fsync 到磁盘的数据可能会丢失。因此,在调整 wal-fsync-delay 的值时需要权衡数据的安全性和性能需求。
wal-fsync-delay = "60ms"
#在生产环境中,由于查询量可能非常大,持续记录所有查询可能会导致日志文件迅速增长,占用大量磁盘空间,
#并可能影响性能。因此,建议仅在需要时启用查询日志,例如在进行性能调优或故障排除时。
query-log-enabled = false
#限制每个shard(分片)在内存中缓存的最大数据量。当缓存的数据量超过这个限制时,InfluxDB会开始将数据写入到磁盘上的TSM
#服务器内存充足且查询负载较重,可以适当增加这个值以提高查询性能
cache-max-memory-size = "2g"
#当shard中的缓存数据量达到这个阈值时,InfluxDB会触发一个快照操作,将数据从内存刷新到TSM文件中
#确保在触发快照操作之前,缓存中有足够的数据量以利用内存的优势。
cache-snapshot-memory-size = "1g"
#过于频繁的缓存快照操作可能会导致磁盘I/O成为性能瓶颈
#如果系统内存充足且写入性能是关键,那么减小cache-snapshot-write-cold-duration的值可以确保数据更快地写入磁盘,
cache-snapshot-write-cold-duration = "10m"
#如果你的系统具有高频的写入操作,可能需要将compact-full-write-cold-duration设置为一个相对较小的值。
#这样可以更频繁地压缩TSM文件,减少文件碎片,提高存储效率和查询性能
#过于频繁的文件压缩可能会增加系统的I/O负载和CPU使用率。官方常见配置为4小时,高频写入建议2小时
compact-full-write-cold-duration = "2h"
#写入密集型负载:如果你的系统主要处理大量的写入操作,并且写入性能是关键,你可能需要限制max-concurrent-compactions的值,以避免压缩操作与写入操作争用资源
#查询密集型负载:如果查询性能是重点,并且你已经观察到由于TSM文件碎片过多而导致的查询性能下降,你可以尝试增加max-concurrent-compactions的值,以加速文件的合并和优化。
#官方配置是4,从默认值开始,然后根据系统的性能监控和日志进行调整。
max-concurrent-compactions = 0
#指定了每秒允许TSM压缩操作写入磁盘的字节数限制
#高I/O性能:如果您的系统具有高性能的磁盘I/O子系统(如SSD),并且磁盘I/O不是瓶颈,那么您可以考虑增加compact-throughput的值,以允许更快的压缩操作
compact-throughput = "64m"
#在短暂突发期间,TSM压缩操作可以写入磁盘的最大字节速率。它允许系统在某些情况下超过compact-throughput的限制,以处理更多的数据或满足更高的性能需求
compact-throughput-burst = "96m"
#将内存分片索引更改为基于时间序列(TSI)的磁盘索引。
#这可以通过修改influxdb.conf配置文件中的index-version参数为tsi1来实现。
index-version = "tsi1"
#限制每个数据库中的最大序列(series)数量。序列是InfluxDB中的一个核心概念,它指的是在相同数据库中,
#具有相同保留策略(retention policy)、度量(measurement)和标签集(tag set)的数据点的集合,默认值是1,000,000(一百万)
#您可以将其设置为0,以允许无限数量的序列(但这可能会增加系统资源的消耗)
max-series-per-database = 0
#max-values-per-tag 是一个限制参数,用于指定 InfluxDB 数据库中每个 tag key 可以关联的不同 tag value 的最大数量
# 个人理解是tag对应的值可能有的最大数量,我们的code和origin和type 应该不会超过太多
# 默认情况下,max-values-per-tag 的值为 100,000(即10万)。
max-values-per-tag = 0
#控制内部缓存中用于存储先前计算的序列结果的大小。这个参数主要影响 TSI(Time-Structured Merge Tree)索引的性能和行为
#指定了索引写前日志(WAL, Write-Ahead Log)文件在压缩成索引文件之前的最大阈值(以字节为单位)
#较小的大小会导致日志文件被更频繁地压缩,这通常会导致较低的堆内存使用,但可能会以牺牲写入吞吐量为代价
#较大的大小会减少日志文件的压缩频率,使更多的系列保持在内存中,并提供更高的写入吞吐量
#如果你有充足的内存资源,并且希望提高写入性能,可以考虑增加这个值
#max-index-log-file-size = "100m":设置最大索引日志文件大小为 100MB。
max-index-log-file-size = "100m"
#用于存储序列 ID 集(series ID sets)的缓存大小。在 InfluxDB 中,每个测量(measurement)、标签(tag)和字段(field)的组合都表示一个序列(series)。
#这个缓存用于加速查询,因为它存储了序列 ID 集的映射,避免了在每次查询时都重新计算它们
#如果你的查询模式主要是读取,并且查询经常涉及相同的测量、标签和字段组合,那么增加 series-id-set-cache-size 可能会提高性能
#如果你的数据写入频率很高,并且经常添加新的序列,那么缓存可能会更快地达到其最大大小,导致缓存失效和性能下降
series-id-set-cache-size = 200


#控制群集服务配置
[coordinator]
#写操作超时时间,默认值: 10s。
write-timeout = "30s"
#查询操作超时时间,0无限制,默认值:0s。
query-timeout = "40s"
#慢查询超时时间,0无限制,默认值:0s。
log-queries-after = "60s"


#旧数据的保留策略
[retention]
#SHOW RETENTION POLICIES ON "history" 查询当前的保留策略
#InfluxDB在创建数据库时会自动创建一个名为“autogen”的默认保留策略,其保留时间为永久(0s表示无限制)。
#当数据超过其保留策略的保留时间后,InfluxDB将自动删除这些数据。因此,在设置保留策略时,请确保考虑您的数据需求和存储限制
#CREATE RETENTION POLICY "<policy_name>" ON "<database_name>" DURATION <duration> REPLICATION <replication_factor> [SHARD DURATION <shard_duration>]
#CREATE RETENTION POLICY "my_rp" ON "mydb" DURATION 7d REPLICATION 1 DEFAULT
#<policy_name>:保留策略的名称 <database_name>:要应用保留策略的数据库名称 <duration>:数据的保留期限,例如“1d”表示一天。
#<replication_factor>:数据的复制因子,指定数据在集群中的副本数量 <shard_duration>(可选):如果要自定义分片持续时间,则可以指定分片的持续时间
#是否启用该模块,默认值
#enabled: true

#influxdb提供的简单web管理页面。
[admin]
#是否启用该模块,默认值 :
#enabled: false。

#这一部分控制InfluxDB自有的监控系统。 默认情况下,InfluxDB把这些数据写入_internal 数据库,如果这个库不存在则自动创建。
#_internal 库默认的retention策略是7天,如果你想使用一个自己的retention策略,需要自己创建。
[monitor]
#当store-enabled设置为true时,InfluxDB会收集并存储关于其运行的统计信息,如查询性能、写入速度、内存使用情况等
#这些数据存储在_internal数据库中,可以通过InfluxDB的查询语言(InfluxQL或Flux)来查询和分析
store-enabled = false

#influxdb的http接口配置
[http]
#控制InfluxDB是否要求HTTP请求进行身份验证
#当auth-enabled设置为true时,InfluxDB会对每个HTTP请求进行身份验证。这包括检查请求中是否包含了有效的用户凭据(如用户名和密码),
#并验证这些凭据是否有效。这个过程虽然增加了额外的计算步骤,但在现代硬件上,这个开销通常是微秒级别的,因此不太可能对整体性能产生显著影响
auth-enabled = true
#当log-enabled设置为true时,InfluxDB将记录HTTP请求的日志信息。这可以帮助管理员了解系统的活动情况,包括哪些IP地址正在访问系统、访问了哪些数据、访问频率等
log-enabled = false

#控制记录器如何将日志发送到输出
[logging]
level = "info"

#控制Kapacitor接受数据的配置。
#通常与Kapacitor等外部服务相关,用于订阅InfluxDB中的实时数据流。然而,直接优化InfluxDB中的subscriber配置并不是InfluxDB配置优化的常见部分,
#因为subscriber更多是由外部服务如Kapacitor来管理和配置的
[subscriber]
#是否启用该模块,默认值 :
#enabled: true

#graphite相关配置
#Graphite是一种常用的开源监控绘图工具,它使用简单且易于扩展,主要用于实时收集、存储和显示时间序列类型的数据。
#当与InfluxDB结合使用时,Graphite通常通过Graphite插件将数据发送到InfluxDB进行存储和查询
[[graphite]]
#是否启用该模块,默认值 :
#enabled: false


# 控制一个或多个收集数据的侦听器
#主要用于收集和报告系统和应用程序的性能指标
[[collectd]]
#是否启用该模块,
#enabled: false

#opentsdb配置
#OpenTSDB(Open Time Series Database)是一个建立在HBase之上的时间序列数据库。尽管名字中包含“DB”,
#但实际上它并不是一个独立的数据库系统,而是一层建立在HBase上的数据读写服务。
#OpenTSDB主要针对时序数据进行存储和查询优化,是监控、度量收集等场景下的重要工具
[[opentsdb]]
#是否启用该模块,默认值:
#enabled: false


#udp配置
[[udp]]
#是否启用该模块,默认值:
#enabled: false

#CQs配置
#按照用户指定的查询规则,自动地、周期性地查询实时数据并执行指定运算,然后将查询结果保存在一张指定的表中
[continuous_queries]

#是否开启CQs,默认值:
#enabled: true

标签:建议,数据,enabled,写入,InfluxDB,查询,influxdb,默认值,优化
From: https://www.cnblogs.com/innocenter/p/18220999

相关文章

  • ClickHouse 留存、路径、漏斗、session 位图 roaringbitmap 位图优化
    Clickhouse在大数据分析平台-留存分析上的应用_大数据_腾讯云大数据_InfoQ写作社区https://xie.infoq.cn/article/c7af40e5ba5f5f5beaccde990ClickHouse实战留存、路径、漏斗、session-腾讯云开发者社区-腾讯云https://cloud.tencent.com/developer/article/1953792导语 | ......
  • 【KELM回归预测】基于麻雀算法优化核极限学习SSA-KELM-Adaboost实现风电回归预测附mat
    以下是使用麻雀算法优化核极限学习机(SSA-KELM)和Adaboost算法实现风电回归预测的MATLAB代码示例:matlab复制%导入风电数据load(‘wind_data.mat’);%假设数据存储在wind_data.mat文件中X=wind_data(:,1:end-1);%输入特征Y=wind_data(:,end);%输出标签%数......
  • Node性能如何进行监控以及优化?
      一、是什么Node作为一门服务端语言,性能方面尤为重要,其衡量指标一般有如下:CPU内存I/O网络CPU主要分成了两部分:CPU负载:在某个时间段内,占用以及等待CPU的进程总数CPU使用率:CPU时间占用状况,等于1-空闲CPU时间(idletime)/CPU总时间这两个指标都是用来评估......
  • 基于Java+Vue的园区智能化管理系统:优化园区工作流程,夯实园区服务和管理水平(整套源码)
        前言:智慧园区管理平台是一个集成了多种功能的综合性系统,旨在通过信息化、智能化手段提升园区的管理效率和服务质量。以下是针对系统的各个功能模块的简要描述:一、楼栋管理会务管理:管理园区内的会议预约、会议室使用等。园区信息:展示园区的基本信息,如位置、面积、规......
  • mysql优化
    一、硬件层面优化1.0硬件选配DELL、HP、IBM、华为、浪潮。CPU:I、E内存:ECCIO:SAS、pci-eSSD、Nvmeflashraid卡:Raid10网卡:单卡单口云服务器:ECS、RDS、PolarDB、TDSQL1.1关闭NUMAa.bios级别:在bios层面numa关闭时,无论os层面的numa是否打开,都不会影响性......
  • 深入探索 MongoDB:高级索引解析与优化策略
    MongoDB是一种非常流行的NoSQL数据库,它支持丰富的索引类型和功能,以提高数据查询的效率和性能。本文将详细介绍MongoDB的高级索引,包括基本语法、常用命令、示例、应用场景、注意事项和总结。基本语法在MongoDB中,可以使用createIndex()方法创建索引,语法如下:db.col......
  • MATLAB的多种预测模型函数(上)建议收藏,可直接调用
    初始变量:yt:输入的时间序列数据j:预测的未来步数 线性回归预测法:functionresults=forecast13(~,yt,j)%yt:输入的时间序列数据%j:预测的未来步数%确定输入数据的长度n=length(yt);%将时间序列数据转换为设计矩阵,用于线......
  • C# 异步高并发优化
    C#异步高并发优化在现代应用程序开发中,处理高并发请求是一个常见的需求。本文将介绍如何在C#中使用异步编程和并发控制技术,优化高并发场景下的应用性能。使用async和await进行异步编程C#中的async和await关键字简化了异步编程的实现,避免了阻塞线程,从而提高了应用的响应......
  • 行列式求值,从 $n!$ 优化到 $n^3$
    前置知识\(\sum\)为累加符号,\(\prod\)为累乘符号。上三角矩阵指只有对角线及其右上方有数值其余都是\(0\)的矩阵。如果一个矩阵的对角线全部为\(1\)那么这个矩阵为单位矩阵记作\(I\)。对于矩阵\(A_{n,m}\)和矩阵\(B_{m,n}\)满足\(A_{i,j}=B_{j,i}\)记作\(A=B^T......
  • 如何进行接口优化?如何进行接口优化?多线程的核心参数有哪些?SpringCloud使用了哪些组件?
    在快速迭代的技术领域中,持续地回顾与总结项目经验不仅是个人成长的催化剂,也是智慧积累的关键环节,本次知识积累旨在深入剖析如何进行接口优化?如何进行接口优化?多线程的核心参数有哪些?SpringCloud使用了哪些组件?一、如何优化SQL?优化SQL语句以提高查询效率和性能是一项......