IoTDB性能调优
配置场景
IoTDB主要利用堆内存完成读写操作。提高IoTDB内存可以有效提高IoTDB读写性能。
配置描述
登录集群FusionInsight Manager页面,选择“集群 > 服务 > IoTDB > 配置 > 全部配置”,进入IoTDB配置界面搜索并修改参数。
配置方法如表1所示。
| 参数名称 | 描述 | 默认值 | 调优建议 |
|---|---|---|---|
| SSL_ENABLE | 客户端到服务端通道SSL加密。 | true | “true”表示开启SSL加密,“false”表示关闭SSL加密。数据传输加解密对性能影响较大,经过测试发现具有200%的性能差异,因此建议性能测试时关闭SSL加密。ConfigNode和IoTDBServer两个角色同名参数都要修改。 |
| iotdb_server_kerberos_qop | 集群内各个IoTDBServer实例数据传输加密,仅开启Kerberos认证的集群支持该参数。 | auth-int | “auth-int”表示数据传输加密,“auth”表示只认证,不加密。因此建议将此参数值修改为“auth”。ConfigNode和IoTDBServer两个角色同名参数都要修改。 |
| GC_OPTS | IoTDBServer使用的内存和GC配置参数,需要按实际情况进行配置。 | -Xms2G -Xmx2G -XX:MaxDirectMemorySize=512M -XX:+UseG1GC -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=1M -Djdk.tls.ephemeralDHKeySize=3072 |
|
| write_read_schema_free_memory_proportion(MRS 3.3.0及之后版本为“storage_query_schema_consensus_free_memory_proportion”) | 内存分配比例:写、读、模型、空闲。 |
| 可根据负载适当调整内存。
|
| iot_consensus_throttle_threshold_in_byte | WAL目录大小上限,默认50GB,单位为字节。超过该值,写操作就会变慢或者被拒绝。 仅MRS 3.3.0及之后版本支持该参数。 | 53687091200 | 可根据写负载情况适当调整。
|
| data_region_iot_max_pending_batches_num | Leader数据副本同步给Follower的并发最大值。 仅MRS 3.3.0及之后版本支持该参数。 | 12 | 可根据CPU、WAL积压情况调整。该参数为自定义配置,需选择“IoTDBServer(角色) > 自定义”,在自定义参数“engine.customized.configs”中添加该参数项及参数值。
|
| avg_series_point_number_threshold | 当内存数据平均点数达到此阈值时,Flush数据到Tsfile。 仅MRS 3.3.0及之后版本支持该参数。 | 10000 | 可根据堆内存使用率、GC时长情况调整。
|
| flush_proportion | 调用刷盘的写内存比例,如果写入负载极高(如批处理=1000),可以降低该值。 仅MRS 3.3.0及之后版本支持该参数。 | 0.4 | 可根据堆内存使用率情况调整。如果内存使用率高,可适当调小该参数值。 |