如何提升写入效率

更新时间:

本文介绍如何通过优化写入的策略提升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外部自己维护一个队列,来调用同步方法;