配置参数

为方便 IoTDB Server 的配置与管理,IoTDB Server 为用户提供三种配置项,使得用户可以在启动服务或服务运行时对其进行配置。

三种配置项的配置文件均位于 IoTDB 安装目录:$IOTDB_HOME/conf文件夹下,其中涉及 server 配置的共有 2 个文件,分别为:iotdb-env.sh, iotdb-engine.properties 。用户可以通过更改其中的配置项对系统运行的相关配置项进行配置。

配置文件的说明如下:

  • iotdb-env.sh:环境配置项的默认配置文件。用户可以在文件中配置 JAVA-JVM 的相关系统配置项。

  • iotdb-engine.properties:IoTDB 引擎层系统配置项的默认配置文件。用户可以在文件中配置 IoTDB 引擎运行时的相关参数,如 JDBC 服务监听端口 (rpc_port)、overflow 数据文件存储目录 (overflow_data_dir) 等。此外,用户可以在文件中配置 IoTDB 存储时 TsFile 文件的相关信息,如每次将内存中的数据写入到磁盘时的数据大小 (group_size_in_byte) ,内存中每个列打一次包的大小 (page_size_in_byte) 等。

热修改配置项

为方便用户使用,IoTDB Server 为用户提供了热修改功能,即在系统运行过程中修改iotdb-engine.properties中部分配置参数并即时应用到系统中。下面介绍的参数中,改后 生效方式为触发生效 的均为支持热修改的配置参数。

触发方式:客户端发送load configuration命令至 IoTDB Server,客户端的使用方式详见 SQL 命令行终端(CLI)配置参数 - 图1 (opens new window)

环境配置项

环境配置项主要用于对 IoTDB Server 运行的 Java 环境相关参数进行配置,如 JVM 相关配置。IoTDB Server 启动时,此部分配置会被传给 JVM。用户可以通过查看 iotdb-env.sh (或iotdb-env.bat) 文件查看环境配置项内容。详细配置项说明如下:

  • JMX_LOCAL
名字JMX_LOCAL
描述JMX 监控模式,配置为 true 表示仅允许本地监控,设置为 false 的时候表示允许远程监控。如想在本地通过网络连接JMX Service,比如nodeTool.sh会尝试连接127.0.0.1:31999,请将JMX_LOCAL设置为false。
类型枚举 String : “true”, “false”
默认值true
改后生效方式重启服务生效
  • JMX_PORT
名字JMX_PORT
描述JMX 监听端口。请确认该端口是不是系统保留端口并且未被占用。
类型Short Int: [0,65535]
默认值31999
改后生效方式重启服务生效
  • MAX_HEAP_SIZE
名字MAX_HEAP_SIZE
描述IoTDB 启动时能使用的最大堆内存大小。
类型String
默认值取决于操作系统和机器配置。在 Linux 或 MacOS 系统下默认为机器内存的四分之一。在 Windows 系统下,32 位系统的默认值是 512M,64 位系统默认值是 2G。
改后生效方式重启服务生效
  • HEAP_NEWSIZE
名字HEAP_NEWSIZE
描述IoTDB 启动时能使用的最小堆内存大小。
类型String
默认值取决于操作系统和机器配置。在 Linux 或 MacOS 系统下默认值为机器 CPU 核数乘以 100M 的值与 MAX_HEAP_SIZE 四分之一这二者的最小值。在 Windows 系统下,32 位系统的默认值是 512M,64 位系统默认值是 2G。
改后生效方式重启服务生效

系统配置项

系统配置项是 IoTDB Server 运行的核心配置,它主要用于设置 IoTDB Server 文件层和引擎层的参数,便于用户根据自身需求调整 Server 的相关配置,以达到较好的性能表现。系统配置项可分为两大模块:文件层配置项和引擎层配置项。用户可以通过iotdb-engine.properties, 文件查看和修改两种配置项的内容。在 0.7.0 版本中字符串类型的配置项大小写敏感。

RPC配置

  • rpc_address
名字rpc_address
描述rpc地址
类型String
默认值0.0.0.0
改后生效方式重启服务生效
  • rpc_port
名字rpc_port
描述jdbc 服务监听端口。请确认该端口不是系统保留端口并且未被占用。
类型Short Int : [0,65535]
默认值6667
改后生效方式重启服务生效
  • rpc_thrift_compression_enable
名字rpc_thrift_compression_enable
描述是否启用 thrift 的压缩机制。
类型Boolean
默认值false
改后生效方式重启服务生效
  • rpc_advanced_compression_enable
名字rpc_advanced_compression_enable
描述是否启用 thrift 的自定制压缩机制。
类型Boolean
默认值false
改后生效方式重启服务生效
  • rpc_max_concurrent_client_num
名字rpc_max_concurrent_client_num
描述最大连接数。
类型Short Int : [0,65535]
默认值65535
改后生效方式重启服务生效
  • thrift_max_frame_size
名字thrift_max_frame_size
描述RPC 请求/响应的最大字节数
类型long
默认值536870912 (默认值512MB,应大于等于 512 1024 1024)
改后生效方式重启服务生效
  • thrift_init_buffer_size
名字thrift_init_buffer_size
描述字节数
类型long
默认值1024
改后生效方式重启服务生效

InfluxDB 协议适配器配置

  • enable_influxdb_rpc_service
名字enable_influxdb_rpc_service
描述是否开启InfluxDB RPC service
类型Boolean
默认值true
改后生效方式重启服务生效
  • influxdb_rpc_port
名字influxdb_rpc_port
描述influxdb rpc service占用端口
类型INT32
默认值8086
改后生效方式重启服务生效

写前日志配置

  • enable_wal
名字enable_wal
描述是否开启写前日志,默认值为 true 表示开启,配置成 false 表示关闭
类型Boolean
默认值true
改后生效方式触发生效
  • enable_discard_out_of_order_data
名字enable_discard_out_of_order_data
描述是否丢弃乱序数据,默认值为 false 表示关闭
类型Boolean
默认值false
改后生效方式触发生效
  • flush_wal_threshold
名字flush_wal_threshold
描述写前日志的条数达到该值之后,持久化到磁盘,有可能丢失至多 flush_wal_threshold 个操作
类型Int32
默认值10000
改后生效方式触发生效
  • force_wal_period_in_ms
名字force_wal_period_in_ms
描述写前日志定期持久化到磁盘的周期,单位毫秒,有可能丢失至多 force_wal_period_in_ms 毫秒的操作。
类型Int32
默认值100
改后生效方式触发生效

目录配置

  • system_dir
名字system_dir
描述IoTDB 元数据存储路径,默认存放在和 sbin 目录同级的 data 目录下。相对路径的起始目录与操作系统相关,建议使用绝对路径。
类型String
默认值data/system(Windows:data\system)
改后生效方式触发生效
  • data_dirs
名字data_dirs
描述IoTDB 数据存储路径,默认存放在和 sbin 目录同级的 data 目录下。相对路径的起始目录与操作系统相关,建议使用绝对路径。
类型String
默认值data/data(Windows:data\data)
改后生效方式触发生效
  • multi_dir_strategy
名字multi_dir_strategy
描述IoTDB 在 tsfile_dir 中为 TsFile 选择目录时采用的策略。可使用简单类名或类名全称。系统提供以下三种策略:
1. SequenceStrategy:IoTDB 按顺序从 tsfile_dir 中选择目录,依次遍历 tsfile_dir 中的所有目录,并不断轮循;
2. MaxDiskUsableSpaceFirstStrategy:IoTDB 优先选择 tsfile_dir 中对应磁盘空余空间最大的目录;
3. MinFolderOccupiedSpaceFirstStrategy:IoTDB 优先选择 tsfile_dir 中已使用空间最小的目录;
4. UserDfineStrategyPackage(用户自定义策略)
您可以通过以下方法完成用户自定义策略:
1. 继承 cn.edu.tsinghua.iotdb.conf.directories.strategy.DirectoryStrategy 类并实现自身的 Strategy 方法;
2. 将实现的类的完整类名(包名加类名,UserDfineStrategyPackage)填写到该配置项;
3. 将该类 jar 包添加到工程中。
类型String
默认值MaxDiskUsableSpaceFirstStrategy
改后生效方式触发生效
  • wal_dir
名字wal_dir
描述IoTDB 写前日志存储路径,默认存放在和 sbin 目录同级的 data 目录下。相对路径的起始目录与操作系统相关,建议使用绝对路径。
类型String
默认值data/wal(Windows:data\wal)
改后生效方式触发生效
  • tsfile_storage_fs
名字tsfile_storage_fs
描述Tsfile 和相关数据文件的存储文件系统。目前支持 LOCAL(本地文件系统)和 HDFS 两种
类型String
默认值LOCAL
改后生效方式仅允许在第一次启动服务前修改
  • core_site_path
名字core_site_path
描述在 Tsfile 和相关数据文件存储到 HDFS 的情况下用于配置 core-site.xml 的绝对路径
类型String
默认值/etc/hadoop/conf/core-site.xml
改后生效方式重启服务生效
  • hdfs_site_path
名字hdfs_site_path
描述在 Tsfile 和相关数据文件存储到 HDFS 的情况下用于配置 hdfs-site.xml 的绝对路径
类型String
默认值/etc/hadoop/conf/hdfs-site.xml
改后生效方式重启服务生效
  • hdfs_ip
名字hdfs_ip
描述在 Tsfile 和相关数据文件存储到 HDFS 的情况下用于配置 HDFS 的 IP。如果配置了多于 1 个 hdfs_ip,则表明启用了 Hadoop HA
类型String
默认值localhost
改后生效方式重启服务生效
  • hdfs_port
名字hdfs_port
描述在 Tsfile 和相关数据文件存储到 HDFS 的情况下用于配置 HDFS 的端口
类型String
默认值9000
改后生效方式重启服务生效
  • dfs_nameservices
名字hdfs_nameservices
描述在使用 Hadoop HA 的情况下用于配置 HDFS 的 nameservices
类型String
默认值hdfsnamespace
改后生效方式重启服务生效
  • dfs_ha_namenodes
名字hdfs_ha_namenodes
描述在使用 Hadoop HA 的情况下用于配置 HDFS 的 nameservices 下的 namenodes
类型String
默认值nn1,nn2
改后生效方式重启服务生效
  • dfs_ha_automatic_failover_enabled
名字dfs_ha_automatic_failover_enabled
描述在使用 Hadoop HA 的情况下用于配置是否使用失败自动切换
类型Boolean
默认值true
改后生效方式重启服务生效
  • dfs_client_failover_proxy_provider
名字dfs_client_failover_proxy_provider
描述在使用 Hadoop HA 且使用失败自动切换的情况下配置失败自动切换的实现方式
类型String
默认值org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
改后生效方式重启服务生效
  • hdfs_use_kerberos
名字hdfs_use_kerberos
描述是否使用 kerberos 验证访问 hdfs
类型String
默认值false
改后生效方式重启服务生效
  • kerberos_keytab_file_path
名字kerberos_keytab_file_path
描述kerberos keytab file 的完整路径
类型String
默认值/path
改后生效方式重启服务生效
  • kerberos_principal
名字kerberos_principal
描述Kerberos 认证原则
类型String
默认值your principal
改后生效方式重启服务生效

存储引擎配置

  • timestamp_precision
名字timestamp_precision
描述时间戳精度,支持 ms、us、ns
类型String
默认值ms
改后生效方式触发生效
  • default_ttl
名字default_ttl
描述数据保留时间,会丢弃 now()-default_ttl 之前的数据,单位 ms
类型long
默认值36000000
改后生效方式重启服务生效
  • wal_buffer_size
名字wal_buffer_size
描述写前日志的 buffer 大小
类型Int32
默认值16777216
改后生效方式触发生效
  • seq_tsfile_size
名字seq_tsfile_size
描述每个顺序tsfile大小,单位:byte
类型Int32
默认值1
改后生效方式重启服务生效
  • unseq_tsfile_size
名字unseq_tsfile_size
描述每个无序 tsfile 大小,单位:byte
类型Int32
默认值1
改后生效方式重启服务生效
  • mlog_buffer_size
名字mlog_buffer_size
描述mlog 的 buffer 大小
类型Int32
默认值1048576
改后生效方式触发生效
  • sync_mlog_period_in_ms
名字sync_mlog_period_in_ms
描述mlog定期刷新到磁盘的周期,单位毫秒。如果该参数为0,则表示每次对元数据的更新操作都会被立即写到磁盘上。
类型Int64
默认值100
改后生效方式重启服务生效
  • memtable_size_threshold
名字memtable_size_threshold
描述内存缓冲区 memtable 阈值
类型Long
默认值1073741824
改后生效方式enable_mem_control 为 false 时生效、重启服务生效
  • enable_timed_flush_seq_memtable
名字enable_timed_flush_seq_memtable
描述是否开启定时刷盘顺序 memtable
类型Boolean
默认值false
改后生效方式触发生效
  • seq_memtable_flush_interval_in_ms
名字seq_memtable_flush_interval_in_ms
描述当 memTable 的创建时间小于当前时间减去该值时,该 memtable 需要被刷盘
类型Int32
默认值3600000
改后生效方式触发生效
  • seq_memtable_flush_check_interval_in_ms
名字seq_memtable_flush_check_interval_in_ms
描述检查顺序 memtable 是否需要刷盘的时间间隔
类型Int32
默认值600000
改后生效方式触发生效
  • enable_timed_flush_unseq_memtable
名字enable_timed_flush_unseq_memtable
描述是否开启定时刷新乱序 memtable
类型Boolean
默认值true
改后生效方式触发生效
  • unseq_memtable_flush_interval_in_ms
名字unseq_memtable_flush_interval_in_ms
描述当 memTable 的创建时间小于当前时间减去该值时,该 memtable 需要被刷盘
类型Int32
默认值3600000
改后生效方式触发生效
  • unseq_memtable_flush_check_interval_in_ms
名字unseq_memtable_flush_check_interval_in_ms
描述检查乱序 memtable 是否需要刷盘的时间间隔
类型Int32
默认值600000
改后生效方式触发生效
  • enable_timed_close_tsfile
名字enable_timed_close_tsfile
描述是否开启定时关闭 tsfile
类型Boolean
默认值true
改后生效方式触发生效
  • close_tsfile_interval_after_flushing_in_ms
名字close_tsfile_interval_after_flushing_in_ms
描述当 tsfile 的上一个 memtable 刷盘时间小于当前时间减去该值且当前工作 memtable 为空时, 该 tsfile 需要被关闭
类型Int32
默认值3600000
改后生效方式触发生效
  • close_tsfile_check_interval_in_ms
名字close_tsfile_check_interval_in_ms
描述检查 tsfile 是否需要关闭的时间间隔
类型Int32
默认值600000
改后生效方式触发生效
  • avg_series_point_number_threshold
名字avg_series_point_number_threshold
描述内存中平均每个时间序列点数最大值,达到触发 flush
类型Int32
默认值10000
改后生效方式重启服务生效
  • concurrent_flush_thread
名字concurrent_flush_thread
描述当 IoTDB 将内存中的数据写入磁盘时,最多启动多少个线程来执行该操作。如果该值小于等于 0,那么采用机器所安装的 CPU 核的数量。默认值为 0。
类型Int32
默认值0
改后生效方式重启服务生效
  • concurrent_query_thread
名字concurrent_query_thread
描述当 IoTDB 对内存中的数据进行查询时,最多启动多少个线程来执行该操作。如果该值小于等于 0,那么采用机器所安装的 CPU 核的数量。默认值为 16。
类型Int32
默认值16
改后生效方式重启服务生效
  • concurrent_sub_rawQuery_thread
名字concurrent_sub_rawQuery_thread
描述原始数据查询时,最多启动多少个线程来执行该操作。如果设置小于等于 0,会采用机器 CPU 核数。
类型Int32
默认值8
改后生效方式重启服务生效
  • raw_query_blocking_queue_capacity
名字raw_query_blocking_queue_capacity
描述原始数据查询中,读任务的阻塞队列长度。默认值为 5。
类型Int32
默认值5
改后生效方式重启服务生效
  • chunk_buffer_pool_enable
名字chunk_buffer_pool_enable
描述在将 memtable 序列化为内存中的字节时,是否开启由 IoTDB 而不是 JVM 接管内存管理,默认关闭。
类型Boolean
默认值false
改后生效方式重启服务生效
  • batch_size
名字batch_size
描述服务器中每次迭代的数据量(数据条目,即不同时间戳的数量。)
类型Int32
默认值100000
改后生效方式重启服务生效
  • tag_attribute_total_size
名字tag_attribute_total_size
描述每个时间序列标签和属性的最大持久化字节数
类型Int32
默认值700
改后生效方式仅允许在第一次启动服务前修改
  • tag_attribute_flush_interval
名字tag_attribute_flush_interval
描述标签和属性记录的间隔数,达到此记录数量时将强制刷盘
类型Int32
默认值1000
改后生效方式仅允许在第一次启动服务前修改
  • enable_partial_insert
名字enable_partial_insert
描述在一次 insert 请求中,如果部分测点写入失败,是否继续写入其他测点。
类型Boolean
默认值true
改后生效方式重启服务生效
  • enable_mtree_snapshot
名字enable_mtree_snapshot
描述是否启用 MTree snapshot。 从 0.11.0 开始默认为 false。
类型Boolean
默认值false
改后生效方式重启服务生效
  • mtree_snapshot_interval
名字mtree_snapshot_interval
描述创建 MTree snapshot 时至少累积的 mlog 日志行数。单位为日志行数。
类型Int32
默认值100000
改后生效方式重启服务生效
  • mtree_snapshot_threhold_time
名字mtree_snapshot_threhold_time
描述MTree 修改的阈值间隔时间,若最后一次修改时间小于这个阈值,则不会创建 MTree snapshot。 单位:秒。 默认值:1 小时(3600 秒)
类型Int32
默认值3600
改后生效方式重启服务生效

内存控制配置

  • enable_mem_control
名字enable_mem_control
描述开启内存控制,避免爆内存
类型Boolean
默认值true
改后生效方式重启服务生效
  • write_read_schema_free_memory_proportion
名字write_read_schema_free_memory_proportion
描述读写内存分配比率。 参数形式为a : b : c : d,其中a、b、c、d为整数。如“1:1:1:1”、“6:2:1:1”,如果你的写入压力大而读取压力小,请调整为“6:1:1:2”
类型String
默认值4:3:1:2
改后生效方式重启服务生效
  • primary_array_size
名字primary_array_size
描述数组池中的原始数组大小(每个数组的长度)
类型Int32
默认值32
改后生效方式重启服务生效
  • flush_proportion
名字flush_proportion
描述调用flush disk的写入内存比例,默认0.4,若有极高的写入负载力(比如batch=1000),可以设置为低于默认值,比如0.2
类型Double
默认值0.4
改后生效方式重启服务生效
  • time_index_memory_proportion
名字time_index_memory_proportion
描述分配给读 timeIndex 的内存占比
类型Double
默认值0.2
改后生效方式重启服务生效
  • buffered_arrays_memory_proportion
名字buffered_arrays_memory_proportion
描述为缓冲数组分配的写入内存比例,默认为0.6
类型Double
默认值0.6
改后生效方式重启服务生效
  • reject_proportion
名字reject_proportion
描述拒绝插入的写入内存比例,默认0.8,若有极高的写入负载力(比如batch=1000)并且物理内存足够大,它可以设置为高于默认值,如0.9
类型Double
默认值0.8
改后生效方式重启服务生效
  • storage_group_report_threshold
名字storage_group_report_threshold
描述如果存储组的内存(以字节byte为单位)增加超过此阈值,则向系统报告。默认值为16MB
类型Int32
默认值16777216
改后生效方式重启服务生效
  • max_deduplicated_path_num
名字max_deduplicated_path_num
描述在一次查询中,允许最大重复路径的数据量,这只是一个建议值,实际限制是这个默认值和计算值的之间
类型Int32
默认值1000
改后生效方式重启服务生效
  • check_period_when_insert_blocked
名字check_period_when_insert_blocked
描述当插入被拒绝时,等待时间(以毫秒为单位)去再次检查系统,默认为50。若插入被拒绝,读取负载低,可以设置大一些。
类型Int32
默认值50
改后生效方式重启服务生效
  • max_waiting_time_when_insert_blocked
名字max_waiting_time_when_insert_blocked
描述当插入的等待时间(以毫秒为单位)超过此值时,抛出异常。默认为10000。若插入被拒绝,读取负载低,可以设置大一些。
类型Int32
默认值10000
改后生效方式重启服务生效
  • estimated_series_size
名字estimated_series_size
描述在Mtree中一个时间序列的评估元数据大小(以字节byte为单位)。
类型Int32
默认值300
改后生效方式重启服务生效
  • io_task_queue_size_for_flushing
名字io_task_queue_size_for_flushing
描述ioTaskQueue 的大小。默认值为10。
类型Int32
默认值10
改后生效方式重启服务生效

升级配置

  • update_thread_num
名字update_thread_num
描述当存在旧版本(V0.9.x/v1)数据时,会设置多少线程来执行升级任务,默认为1。版本小于等于V0.X时设置为1。
类型Int32
默认值1
改后生效方式重启服务生效

查询配置

  • default_fill_interval
名字default_fill_interval
描述填充查询中使用的默认时间段,默认-1表示无限过去时间,以毫秒ms为单位
类型Int32
默认值-1
改后生效方式重启服务生效
  • group_by_fill_cache_size_in_mb
名字group_by_fill_cache_size_in_mb
描述填充查询中使用的缓存大小,单位是MB
类型Float
默认值1.0
改后生效方式重启服务生效

合并配置

  • enable_seq_space_compaction
名字enable_seq_space_compaction
描述顺序空间内合并,开启顺序文件之间的合并
类型Boolean
默认值true
改后生效方式重启服务生效
  • enable_unseq_space_compaction
名字enable_unseq_space_compaction
描述乱序空间内合并,开启乱序文件之间的合并
类型Boolean
默认值false
改后生效方式重启服务生效
  • enable_cross_space_compaction
名字enable_cross_space_compaction
描述跨空间合并,开启将乱序文件合并到顺序文件中
类型Boolean
默认值true
改后生效方式重启服务生效
  • cross_compaction_strategy
名字cross_compaction_strategy
描述跨空间合并的策略
类型String
默认值rewrite_compaction
改后生效方式重启服务生效
  • inner_compaction_strategy
名字cross_compaction_strategy
描述空间内合并的策略
类型String
默认值size_tiered_compaction
改后生效方式重启服务生效
  • compaction_priority
名字compaction_priority
描述合并时的优先级,BALANCE 各种合并平等,INNER_CROSS 优先进行顺序文件和顺序文件或乱序文件和乱序文件的合并,CROSS_INNER 优先将乱序文件合并到顺序文件中
类型String
默认值BALANCE
改后生效方式重启服务生效
  • target_compaction_file_size
名字target_compaction_file_size
描述空间内合并的目标文件大小
类型Int64
默认值1073741824
改后生效方式重启服务生效
  • target_chunk_size
名字target_chunk_size
描述合并时 Chunk 的目标大小
类型Int64
默认值1048576
改后生效方式重启服务生效
  • target_chunk_point_num
名字target_chunk_point_num
描述合并时 Chunk 的目标点数
类型Int32
默认值100000
改后生效方式重启服务生效
  • chunk_size_lower_bound_in_compaction
名字chunk_size_lower_bound_in_compaction
描述合并时源 Chunk 的大小小于这个值,将被解开成点进行合并
类型Int64
默认值128
改后生效方式重启服务生效
  • chunk_point_num_lower_bound_in_compaction
名字chunk_point_num_lower_bound_in_compaction
描述合并时源 Chunk 的点数小于这个值,将被解开成点进行合并
类型Int32
默认值100
改后生效方式重启服务生效
  • max_inner_compaction_candidate_file_num
名字max_inner_compaction_candidate_file_num
描述空间内合并中一次合并最多参与的文件数
类型Int32
默认值30
改后生效方式重启服务生效
  • max_cross_compaction_candidate_file_num
名字max_cross_compaction_candidate_file_num
描述跨空间合并中一次合并最多参与的文件数
类型Int32
默认值1000
改后生效方式重启服务生效
  • cross_compaction_file_selection_time_budget
名字cross_compaction_file_selection_time_budget
描述若一个合并文件选择运行的时间超过这个时间,它将结束,并且当前的文件合并选择将用作为最终选择。当时间小于0 时,则表示时间是无边界的。单位:ms。
类型Int32
默认值30000
改后生效方式重启服务生效
  • cross_compaction_memory_budget
名字cross_compaction_memory_budget
描述一个合并任务可以使用多少内存(以字节为单位),默认为最大JVM内存的10%。这只是一个粗略的估计,从一个比较小的值开始,避免OOM。每个新的合并线程可能会占用这样的内存,所以merge_thread_num * merge_memory_budget是合并的预估总内存。
类型Int32
默认值2147483648
改后生效方式重启服务生效
  • concurrent_compaction_thread
名字concurrent_compaction_thread
描述执行合并任务的线程数目
类型Int32
默认值10
改后生效方式重启服务生效
  • compaction_schedule_interval_in_ms
名字compaction_schedule_interval_in_ms
描述合并调度的时间间隔
类型Int64
默认值60000
改后生效方式重启服务生效
  • compaction_submission_interval_in_ms
名字compaction_submission_interval_in_ms
描述合并任务提交的间隔
类型Int64
默认值60000
改后生效方式重启服务生效
  • compaction_write_throughput_mb_per_sec
名字compaction_write_throughput_mb_per_sec
描述每秒可达到的写入吞吐量合并限制。
类型Int32
默认值16
改后生效方式重启服务生效

插入配置

  • insert_multi_tablet_enable_multithreading_column_threshold
名字insert_multi_tablet_enable_multithreading_column_threshold
描述插入时启用多线程插入列数的阈值
类型Int32
默认值10
改后生效方式重启服务生效
  • query_timeout_threshold
名字query_timeout_threshold
描述查询的最大执行时间。单位:毫秒。
类型Int32
默认值60000
改后生效方式重启服务生效

元数据缓存配置

  • meta_data_cache_enable
名字meta_data_cache_enable
描述是否缓存元数据Chunk Metadata 和 TimeSeries Metadata)。
类型Boolean
默认值true
改后生效方式重启服务生效
  • chunk_timeseriesmeta_free_memory_proportion
名字chunk_timeseriesmeta_free_memory_proportion
描述读取内存分配比例,BloomFilterCache、ChunkCache、TimeseriesMetadataCache、数据集查询的内存和可用内存的查询。参数形式为a : b : c : d : e,其中a、b、c、d、e为整数。 例如“1 : 1 : 1 : 1 : 1” ,“1 : 100 : 200 : 300 : 400” 。
类型String
默认值1 : 100 : 200 : 300 : 400
改后生效方式重启服务生效
  • metadata_node_cache_size
名字metadata_node_cache_size
描述Manager的缓存大小。所有路径检查和将具有相应路径的MManager中的TSDataType的缓存,都将被用作提高写入速度。
类型Int32
默认值300000
改后生效方式重启服务生效

最新点缓存配置

  • enable_last_stat
名字enable_last_cache
描述是否开启最新点缓存
类型Boolean
默认值true
改后生效方式重启服务生效

统计监控器配置

  • enable_stat_monitor
名字enable_stat_monitor
描述选择是否启动后台统计功能
类型Boolean
默认值false
改后生效方式重启服务生效
  • enable_monitor_series_write
名字enable_monitor_series_write
描述是否开启写入服务监控的时间序列
类型Boolean
默认值false
改后生效方式重启服务生效

WAL 直接缓冲池配置

  • wal_pool_trim_interval_ms
名字wal_pool_trim_interval_ms
描述缩短日志池间隔时间,单位:毫秒ms
类型Int32
默认值10000
改后生效方式重启服务生效
  • max_wal_bytebuffer_num_for_each_partition
名字max_wal_bytebuffer_num_for_each_partition
描述每个时间分区可以分配的最大日志字节缓冲区数,如果没有乱序数据可以设置为4。应该是偶数
类型Int32
默认值6
改后生效方式重启服务生效

外部排序配置

  • enable_external_sort
名字enable_external_sort
描述是否开启外部排序功能
类型Boolean
默认值true
改后生效方式重启服务生效
  • external_sort_threshold
名字external_sort_threshold
描述单个时间序列的最大同时块读取数。若同时chunk读取的数量大于external_sort_threshold,则使用外部排序。当external_sort_threshold增加时,内存中同时排序的chunk数量可能会增加,这会占用更多的内存;external_sort_threshold 减小时,触发外部排序会增加耗时。
类型Int32
默认值1000
改后生效方式重启服务生效

同步服务器配置

  • is_sync_enable
名字is_sync_enable
描述是否开启同步服务功能
类型Boolean
默认值false
改后生效方式重启服务生效
  • sync_server_port
名字sync_server_port
描述同步服务器端口进行监听
类型Int32
默认值5555
改后生效方式重启服务生效
  • ip_white_list
名字ip_white_list
描述同步客户端的白名单。请用网段形式表示IP范围,例如:192.168.0.0/16,若有多个IP段,请用逗号隔开,默认是允许所有IP同步
类型String
默认值0.0.0.0/0
改后生效方式重启服务生效

性能统计配置

  • enable_performance_stat
名字enable_performance_stat
描述是否启用子模块的性能状态
类型Boolean
默认值true
改后生效方式重启服务生效
  • tracing_dir
名字tracing_dir
描述取消注释用以下字段来配置 tracing 根目录。
类型String
默认值data/tracing(Windows:data\tracing)
改后生效方式重启服务生效

水印模块配置

  • watermark_module_opened
名字watermark_module_opened
描述是否开启水印水印嵌入功能
取值true or false
默认值false
改后生效方式重启服务生效
  • watermark_secret_key
名字watermark_secret_key
描述水印嵌入功能秘钥
类型String
默认值IoTDB * 2019@Beijing
改后生效方式重启服务生效
  • watermark_bit_string
名字watermark_bit_string
描述水印比特字符串
类型Int32
默认值100101110100
改后生效方式重启服务生效
  • watermark_method
名字watermark_method
描述水印嵌入方法
类型String
默认值GroupBasedLSBMethod(embed_row_cycle=2,embed_lsb_num=5)
改后生效方式重启服务生效

数据类型自动推断

  • enable_auto_create_schema
名字enable_auto_create_schema
描述当写入的序列不存在时,是否自动创建序列
取值true or false
默认值true
改后生效方式重启服务生效
  • default_storage_group_level
名字default_storage_group_level
描述当写入的数据不存在且自动创建序列时,若需要创建相应的存储组,将序列路径的哪一层当做存储组。例如,如果我们接到一个新序列 root.sg0.d1.s2, 并且 level=1, 那么 root.sg0 被视为存储组(因为 root 是 level 0 层)
取值Int32
默认值1
改后生效方式重启服务生效
  • boolean_string_infer_type
名字boolean_string_infer_type
描述“true” 或者 “false” 字符串被推断的数据类型
取值BOOLEAN 或者 TEXT
默认值BOOLEAN
改后生效方式重启服务生效
  • integer_string_infer_type
名字integer_string_infer_type
描述整型字符串推断的数据类型
取值INT32, INT64, FLOAT, DOUBLE, TEXT
默认值FLOAT
改后生效方式重启服务生效
  • long_string_infer_type
名字long_string_infer_type
描述大于 2 ^ 24 的整形字符串被推断的数据类型
取值DOUBLE, FLOAT or TEXT
默认值DOUBLE
改后生效方式重启服务生效
  • floating_string_infer_type
名字floating_string_infer_type
描述“6.7”等字符串被推断的数据类型
取值DOUBLE, FLOAT or TEXT
默认值FLOAT
改后生效方式重启服务生效
  • nan_string_infer_type
名字nan_string_infer_type
描述“NaN” 字符串被推断的数据类型
取值DOUBLE, FLOAT or TEXT
默认值DOUBLE
改后生效方式重启服务生效
  • default_boolean_encoding
名字default_boolean_encoding
描述BOOLEAN 类型编码格式
取值PLAIN, RLE
默认值RLE
改后生效方式重启服务生效
  • default_int32_encoding
名字default_int32_encoding
描述int32 类型编码格式
取值PLAIN, RLE, TS_2DIFF, REGULAR, GORILLA
默认值RLE
改后生效方式重启服务生效
  • default_int64_encoding
名字default_int64_encoding
描述int64 类型编码格式
取值PLAIN, RLE, TS_2DIFF, REGULAR, GORILLA
默认值RLE
改后生效方式重启服务生效
  • default_float_encoding
名字default_float_encoding
描述float 类型编码格式
取值PLAIN, RLE, TS_2DIFF, GORILLA
默认值GORILLA
改后生效方式重启服务生效
  • default_double_encoding
名字default_double_encoding
描述double 类型编码格式
取值PLAIN, RLE, TS_2DIFF, GORILLA
默认值GORILLA
改后生效方式重启服务生效
  • default_text_encoding
名字default_text_encoding
描述text 类型编码格式
取值PLAIN
默认值PLAIN
改后生效方式重启服务生效

文件层配置

  • group_size_in_byte
名字group_size_in_byte
描述每次将内存中的数据写入到磁盘时的最大写入字节数
类型Int32
默认值134217728
改后生效方式触发生效
  • page_size_in_byte
名字page_size_in_byte
描述内存中每个列写出时,写成的单页最大的大小,单位为字节
类型Int32
默认值65536
改后生效方式触发生效
  • max_number_of_points_in_page
名字max_number_of_points_in_page
描述一个页中最多包含的数据点(时间戳-值的二元组)数量
类型Int32
默认值1048576
改后生效方式触发生效
  • max_string_length
名字max_string_length
描述针对字符串类型的数据,单个字符串最大长度,单位为字符
类型Int32
默认值128
改后生效方式触发生效
  • float_precision
名字float_precision
描述浮点数精度,为小数点后数字的位数
类型Int32
默认值默认为 2 位。注意:32 位浮点数的十进制精度为 7 位,64 位浮点数的十进制精度为 15 位。如果设置超过机器精度将没有实际意义。
改后生效方式触发生效
  • time_encoder
名字time_encoder
描述时间列编码方式
类型枚举 String: “TS_2DIFF”,“PLAIN”,“RLE”
默认值TS_2DIFF
改后生效方式触发生效
  • value_encoder
名字value_encoder
描述value 列编码方式
类型枚举 String: “TS_2DIFF”,“PLAIN”,“RLE”
默认值PLAIN
改后生效方式触发生效
  • compressor
名字compressor
描述数据压缩方法
类型枚举 String : “UNCOMPRESSED”, “SNAPPY”, “LZ4”
默认值SNAPPY
改后生效方式触发生效
  • max_degree_of_index_node
名字max_degree_of_index_node
描述元数据索引树的最大度(即每个节点的最大子节点个数)。
类型Int32
默认值256
改后生效方式仅允许在第一次启动服务前修改
  • frequency_interval_in_minute
名字frequency_interval_in_minute
描述计算查询频率的时间间隔(以分钟为单位)。
类型Int32
默认值1
改后生效方式触发生效
  • slow_query_threshold
名字slow_query_threshold
描述慢查询的时间成本(毫秒ms)阈值。
类型Int32
默认值5000
改后生效方式触发生效

MQTT代理配置

  • enable_mqtt_service
名字enable_mqtt_service。
描述是否开启MQTT服务
类型Boolean
默认值false
改后生效方式触发生效
  • mqtt_host
名字mqtt_host
描述MQTT服务绑定的host。
类型String
默认值0.0.0.0
改后生效方式触发生效
  • mqtt_port
名字mqtt_port
描述MQTT服务绑定的port。
类型Int32
默认值1883
改后生效方式触发生效
  • mqtt_handler_pool_size
名字mqtt_handler_pool_size
描述用于处理MQTT消息的处理程序池大小。
类型Int32
默认值1
改后生效方式触发生效
  • mqtt_payload_formatter
名字mqtt_payload_formatter
描述MQTT消息有效负载格式化程序。
类型String
默认值json
改后生效方式触发生效
  • mqtt_max_message_size
名字mqtt_max_message_size
描述MQTT消息的最大长度(以字节为单位)。
类型Int32
默认值1048576
改后生效方式触发生效

授权配置

  • authorizer_provider_class
名字authorizer_provider_class
描述权限服务的类名
类型String
默认值org.apache.iotdb.db.auth.authorizer.LocalFileAuthorizer
改后生效方式重启服务生效
其他可选值org.apache.iotdb.db.auth.authorizer.OpenIdAuthorizer
  • openID_url
名字openID_url
描述openID 服务器地址 (当 OpenIdAuthorizer 被启用时必须设定)
类型String(一个 http 地址)
默认值
改后生效方式重启服务生效

UDF查询配置

  • udf_initial_byte_array_length_for_memory_control
名字udf_initial_byte_array_length_for_memory_control
描述用于评估UDF查询中文本字段的内存使用情况。建议将此值设置为略大于所有文本的平均长度记录。
类型Int32
默认值48
改后生效方式重启服务生效
  • udf_memory_budget_in_mb
名字udf_memory_budget_in_mb
描述在一个UDF查询中使用多少内存(以 MB 为单位)。上限为已分配内存的 20% 用于读取。
类型Float
默认值30.0
改后生效方式重启服务生效
  • udf_reader_transformer_collector_memory_proportion
名字udf_reader_transformer_collector_memory_proportion
描述UDF内存分配比例。参数形式为a : b : c,其中a、b、c为整数。
类型String
默认值1:1:1
改后生效方式重启服务生效
  • udf_root_dir
名字udf_root_dir
描述取消注释用以下字段来配置udf根目录。
类型String
默认值ext/udf(Windows:ext\udf)
改后生效方式重启服务生效

索引配置

  • index_root_dir
名字index_root_dir
描述取消注释用以下字段来配置索引根目录。
类型String
默认值data/index(Windows:data\index)
改后生效方式重启服务生效
  • enable_index
名字enable_index
描述是否启用索引。
类型Boolean
默认值false
改后生效方式重启服务生效
  • concurrent_index_build_thread
名字concurrent_index_build_thread
描述有多少线程可以同时构建索引。当<=0时,使用CPU内核数。
类型Int32
默认值0
改后生效方式重启服务生效
  • default_index_window_range
名字default_index_window_range
描述索引框架中用于子序列匹配的滑动窗口的默认大小。
类型Int32
默认值10
改后生效方式重启服务生效
  • index_buffer_size
名字index_buffer_size
描述索引处理器的缓冲区参数。
类型Int32
默认值134217728
改后生效方式重启服务生效
  • enable_partition
名字enable_partition
描述是否开启将数据按时间分区存储的功能,如果关闭,所有数据都属于分区 0 (不建议开启此功能。 如果打开,请计算合适的 concurrent_writing_time_partition 和 wal_buffer_size)
类型Boolean
默认值false
改后生效方式仅允许在第一次启动服务前修改
  • partition_interval
名字partition_interval
描述用于存储组分区的时间段长度,用户指定的存储组下会使用该时间段进行分区,单位:秒
类型Int64
默认值604800
改后生效方式仅允许在第一次启动服务前修改
  • virtual_storage_group_num
名字virtual_storage_group_num
描述每一个用户定义存储组下虚拟存储组的数量, 虚拟存储组是内存中写入的并行单位,每一个虚拟存储组内的写入请求是串行的,推荐值为: [virtual storage group number] = [CPU core number] / [user-defined storage group number]
类型INT32
默认值1
改后生效方式仅允许在第一次启动服务前修改
  • concurrent_writing_time_partition
名字concurrent_writing_time_partition
描述最大可同时写入的时间分区个数,默认500个分区
类型Int64
默认值500
改后生效方式重启服务生效
  • admin_name
名字admin_name
描述管理员用户名,默认为root
类型String
默认值root
改后生效方式仅允许在第一次启动服务前修改
  • admin_password
名字admin_password
描述管理员密码,默认为root
类型String
默认值root
改后生效方式仅允许在第一次启动服务前修改

SELECT-INTO配置

  • select_into_insert_tablet_plan_row_limit
名字select_into_insert_tablet_plan_row_limit
描述执行 select-into 语句时,一个 insert-tablet-plan 中可以处理的最大行数
类型Int32
默认值10000
改后生效方式触发生效

触发器配置

  • concurrent_window_evaluation_thread
名字concurrent_window_evaluation_thread
描述窗口计算线程池的默认线程数
类型Int32
默认值CPU核数
改后生效方式重启服务生效
  • max_pending_window_evaluation_tasks
名字max_pending_window_evaluation_tasks
描述最多允许堆积的窗口计算任务
类型Int32
默认值64
改后生效方式重启服务生效

连续查询配置

  • continuous_query_execution_thread
名字continuous_query_execution_thread
描述执行连续查询任务的线程池的线程数
类型Int32
默认值max(1, CPU 核数 / 2)
改后生效方式重启服务生效
  • max_pending_continuous_query_tasks
名字max_pending_continuous_query_tasks
描述队列中连续查询最大任务堆积数
类型Int32
默认值64
改后生效方式重启服务生效
  • continuous_query_min_every_interval
名字continuous_query_min_every_interval
描述连续查询执行时间间隔的最小值
类型duration
默认值1s
改后生效方式重启服务生效

开启 GC 日志

GC 日志默认是关闭的。为了性能调优,用户可能会需要收集 GC 信息。 若要打开 GC 日志,则需要在启动 IoTDB Server 的时候加上”printgc”参数:

  1. nohup sbin/start-server.sh printgc >/dev/null 2>&1 &

或者

  1. sbin\start-server.bat printgc

GC 日志会被存储在IOTDB_HOME/logs/gc.log. 至多会存储 10 个 gc.log 文件,每个文件最多 10MB。