开发者社区 问答 正文

写入数据需要注意什么?

  • 每秒写入点数不超过 50000,超过 50000 会导致此次批量写入失败。 请使用并发+批量的方式写入数据,推荐并发大于 256,推荐批量数大于 400。
  • HiTSDB 使用类似 TCP 的 Nagle 算法,在每秒写点数较少时,单台 HiTSDB 会等到至少 2000 个点,或者 2 秒超时到达才会写数据,因此当每秒写入点数少于(2 台 HiTSDB 做负载)4000 时,RT 会变高。

展开
收起
云栖大讲堂 2017-11-03 10:22:59 1385 分享 版权
阿里云 AI 助理回答

您提到的是关于阿里云时序时空数据库(HiTSDB)写入性能和优化策略的问题。根据您的描述,这里有几个关键点需要注意和采取相应的优化措施:

  1. 每秒写入点数限制:HiTSDB 设定了单次写入不超过50000个数据点的限制,以避免单次请求过大导致写入失败。如果您的写入需求超过这个限制,应该采用并发批量写入的方式。

  2. 并发与批量写入建议:为了提高写入效率,推荐设置并发数大于256,并且每个批次的数据点数量大于400。这意味着您可以通过多线程或者异步方式同时发送多个写入请求,每个请求中包含数百至数千个数据点,以此来分散写入压力并提升整体吞吐量。

  3. Nagle算法的影响:HiTSDB采用了类似TCP中的Nagle算法来减少小包的发送,以提高网络效率。这意呀着在低频写入场景下(每秒写入点数较少),HiTSDB会等待积累到至少2000个数据点或达到2秒超时后才执行写入操作。因此,当写入速率低于某个阈值时(例如,在只有两台HiTSDB实例做负载均衡的情况下,总写入速率少于4000点/秒),可能会观察到响应时间(RT)增加。

针对上述情况,以下是一些优化建议:

  • 增加并发度:确保您的应用程序能够发起足够多的并发请求,充分利用推荐的并发数(>256)。
  • 调整批量大小:合理设置每次写入的数据点数量,使之大于400,但不要接近50000的上限,以平衡请求大小和频率。
  • 使用负载均衡:如果条件允许,增加HiTSDB实例数量并使用负载均衡器,可以进一步分散写入流量,减少单个实例的压力,特别是在写入速率较低时,有助于降低RT。
  • 监控与调优:利用阿里云提供的监控工具,持续监控写入性能和系统负载,根据实际情况动态调整并发数和批量大小。
  • 预写缓冲区配置:考虑对HiTSDB的预写缓冲区等参数进行适当配置,以优化数据暂存和写入策略,尤其是在高写入压力下。

通过这些策略的综合应用,您可以有效提升HiTSDB的数据写入性能,降低延迟,确保系统的稳定运行。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答分类:
问答地址: