如何提升写入效率
更新时间:
本文介绍如何通过优化写入的策略提升TSDB 写入效率:
请使用“并发+批量”的方式写入数据。推荐并发大于 256,推荐批量数大于 400。
如果通过SDK提交可以遵循一下写入优化的方面和原则:
SDK实例创建和销毁:
- TSDB SDK在一个进程中只需要创建一个全局实例即可;
- 写入或者查询直接调用putXXX()或者queryXXX()方法即可,无需调用close()方法;
- 一般SDK 销毁只需在进行shutdown的时候调用close()方法即可;
批量提交数据点
- 批量提交数据点相对于单点提交,可以减少网络开销,提高整体吞吐量;
- SDK默认的异步提交批次大小为500点一批;
- 线程数设置
- SDK默认的异步提交消费者线程数为1;
- 当写入TPS较高时,可以适当调大消费者线程;
- 异步和同步写入优化
- 异步写:异步写入调用put()方法即可;SDK的内部处理逻辑为:
- 1)将Points放入内部队列;
- 2)消费者线程从内部队列取出小于等于批次大小个数据点,发送个TSDB服务端;
- 同步写:同步写调用putSync()方法即可;SDK的内部处理逻辑为:
- 1)直接将方法传入的数据点Point发送给TSDB服务端;
- 2)同步方法的性能取决于每次提交的点数;
- 3)用户可以自己在SDK外部自己维护一个队列,来调用同步方法;
- 异步写:异步写入调用put()方法即可;SDK的内部处理逻辑为:
文档内容是否对您有帮助?