如何提升寫入效率
更新時間:
本文介紹如何通過優化寫入的策略提升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的內部處理邏輯為:
文檔內容是否對您有幫助?