IoTDB Performance Tuning
Scenario
You can increase IoTDB memory to improve IoTDB performance because read and write operations are performed in HBase memory.
Configuration
Log in to Manager, choose Cluster > Services > IoTDB, and click the Configurations tab and then All Configurations. Search the parameters and modify their values.
For details, see Table 1.
Parameter |
Description |
Default Value |
Optimization Suggestion |
---|---|---|---|
SSL_ENABLE |
Whether to encrypt the channel between the client and server using SSL |
true |
true indicates that SSL encryption is enabled, and false indicates that SSL encryption is disabled. Data encryption and decryption during transmission have a great impact on performance. The test result shows that the performance gap is 200%. Therefore, you are advised to disable SSL encryption during the performance test. The parameter for the ConfigNode and IoTDBServer roles must be both modified. |
iotdb_server_kerberos_qop |
Data transmission encryption for each IoTDBServer instance in the cluster. Only clusters with Kerberos authentication enabled support this parameter. |
auth-int |
auth-int indicates that data transmission is encrypted, and auth indicates that data is authenticated only without being encrypted. Therefore, you are advised to set this parameter to auth. The parameter for the ConfigNode and IoTDBServer roles must be both modified. |
GC_OPTS |
Memory and garbage collection (GC) configuration parameters used by IoTDBServer |
-Xms2G -Xmx2G -XX:MaxDirectMemorySize=512M -XX:+UseG1GC -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=1M -Djdk.tls.ephemeralDHKeySize=3072 (set this parameter as required.) |
|
storage_query_schema_consensus_free_memory_proportion |
Memory allocation ratio: write, read, schema, consensus, and free |
3:3:1:1:2 |
You can adjust the memory based on the load.
|
iot_consensus_throttle_threshold_in_byte |
Maximum size of the WAL directory, in bytes. The default maximum size is 50 GB. If the directory size exceeds the value you set, write operations are slowed down or rejected. |
53687091200 |
You can adjust the value based on the number of writes.
|
data_region_iot_max_pending_batches_num |
Maximum number of concurrent requests for synchronizing leader data copies to followers. |
12 |
You can adjust the value based on the CPU usage and pending WAL files. To use this parameter, select IoTDBServer(Role) > Customization and add this parameter and its value to engine.customized.configs.
|
avg_series_point_number_threshold |
Maximum average number of memory data points. When this threshold is reached, data is flushed to Tsfile. |
10000 |
You can adjust the value based on the heap memory usage and GC duration.
|
flush_proportion |
Write memory ratio for invoking disk flushing. If the write load is too high (for example, batch processing = 1000), you can decrease the value. |
0.4 |
You can adjust the value based on the heap memory usage. If the memory usage is high, decrease the value. |
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot