如何评估和观测 IoTDB 所需的网络带宽?

news/2024/9/29 6:06:47 标签: iotdb

27af4a1b1b7547a0bbb86e47ac7bdf21.jpeg

IoTDB 推荐网络配置+监控网络 I/O 一网打尽!

网络数据传输速度太慢?延迟太高?

网络的硬件配置如何确定?

网络流量过大导致拥塞?

在现代计算机系统和应用程序中,网络 I/O 性能是决定整体系统表现的关键因素之一。无论是数据库、文件服务器,还是各类应用程序,都依赖高效的网络 I/O 操作来确保数据传输速度和系统可扩展性。在 IoTDB 集群环境中,网络 I/O 的重要性尤为突出,特别是在处理大量测点数据、客户端请求以及集群内部通信时。

本文将首先介绍 IoTDB 数据库集群部署过程中针对网络、存储和负载的推荐配置,尤其是在处理海量测点数据和多副本备份时,如何进行有效的配置和性能优化。接着,我们将探讨如何使用 IoTDB 监控工具查看网络 I/O 使用情况。

01

如何估算网络负载与带宽需求?

步骤一:接入负载估算

接入负载计算主要用于估算系统或集群在特定工作负载下的数据接入量,即系统每秒钟需要处理的数据写入(接收)量。这对于 IoTDB 这种高性能时序数据库尤为重要,因为它通常需要持续接收和处理大量设备数据。

在 IoTDB 的典型应用场景中,接入负载通常以数据点的采集频率和每秒需要写入的数据量为基础进行计算。公式如下:

接入负载 = 测点总数 × 采集频率 × 单测点字节数 × 副本数

  • 测点总数:需要接入的测点总数,每个测点会按照一定频率采集数据。

  • 采集频率:每个测点每秒钟采集数据的次数。

  • 单测点字节数:每个测点每次采集的数据量。根据数据类型的不同,数据量也有所差异。

    • 例如:Double 类型数据:8 字节(数据) + 8 字节(时间戳) = 16 字节

  • 副本数量:副本数决定同一数据被保存的副本数量,从而影响磁盘存储和网络负载。写入数据副本的数量,副本数越多,所需的写入量越大。

  • 压缩比:落盘文件的压缩比率,IoTDB 中压缩比率通常在 5 - 20 之间,如果一个 Plain 文件占用 100 MB,在压缩之后占用 10 MB,那么压缩率就是 10。

Note:目前压缩比只针对磁盘,网络 IO 暂时没有压缩

举一个实际例子:假设系统中有 80 万测点,每个测点每秒采集一次,数据类型以 Double(8 字节)为主,压缩率为 10,在 IoTDB 中为双副本存储,则接入负载估算如下:

  • 每个测点每秒的数据量

    • 每个测点每秒写入一次数据,每次写入 16 字节(8 字节数据 + 8 字节时间戳)。

  • 80 万个测点每秒的数据量

    • 计算所有测点每秒的总数据量为:16B × 800000 测点 x 2 副本  = 24.4 MB

因此,80 万个测点每秒需要写入的数据量约为 24.4 MB

步骤二:带宽需求估算

网络带宽需求主要取决于数据写入时的网络流量。在双副本模式下,系统每秒的写入数据量为 24.4 MB。为了确保网络不会成为瓶颈,特别是在高峰写入时段,需要合适的带宽来支撑这个写入负载。

  • 最小带宽需求

    • 双副本平均每秒写入量为 24.4 MB/s

    • 因此,网络的最小带宽需求为 24.44 MB/s。为了确保流量高峰时的稳定性,通常带宽需求会设置为最小需求的 2 倍

  • 建议网卡带宽

    • 以目前估算出的平均写入流量 24.4 MB/s 为基准,建议使用千兆网卡(1Gbps),其最大传输速率为 128 MB/s,足以满足系统写入时的网络带宽需求,并提供额外的冗余。

    • 如果数据量进一步增加,或者预期系统扩展,需要升级到万兆网卡(10Gbps),其最大传输速率为 1.28 GB/s

通过对设备数量、测点数、数据类型、采集频率和副本数的分析,我们得出了 IoTDB 在双副本配置下的负载估算为 24.4 MB/s

02

如何观测和优化网络 IO?

介绍完如何根据负载来估算网络带宽,接下来介绍如何对网络 IO 进行观测,为用户提供准确便利的可视化信息,能够更好的判断网络瓶颈和针对性优化。

(1)配套监控工具:网络 IO 监控的好帮手

IoTDB 提供了一个全面的网络 IO 监控方案,通过自带的监控框架定期采集系统的网络 IO 性能指标,并将其存入 Prometheus,同时在配套监控面板工具中展示。

16e62a5fbe798c1970de2be3ac180cbe.png

与传统网络监控工具相比,IoTDB 的内置网络 IO 监控方案具有以下显著优势:

  • 更长周期的数据记录与趋势跟踪相比于 ifstat、iftop 等实时监控工具,IoTDB 能够长期记录数据并进行趋势分析。

  • 更丰富的网络 IO 观测指标提供了比传统工具更全面的网络 IO 监控指标,支持进程级别或更细粒度的网络流量监控。

  • 更友好的监控可视化与 Grafana 深度集成,以图表形式直观展示网络 IO 数据,提升了数据的可读性,并帮助用户快速识别网络性能瓶颈。

(2)网络 IO 核心监控指标详解

我们以一个实际的例子进行分析,该 IoTDB 所在节点包含两个网卡,一个是对外的 eno1 网卡,一个是环回接口 lo 虚拟网卡,他们的网络 IO 指标表现如下:

  • 网络速度分析(Net Speed)监控面板显示网络速度在特定时段(如 12:00 和 16:30)出现明显波动,接收速率超过 80 MiB/s,而非高峰时段网络流量接近 0 MiB/s。这表明系统在这些时段承载了较大的外部数据流输入。

  • 数据包速率分析(Packet Speed)数据包接收速率在高峰时段达到 50 kp/s,非高峰时段降至接近 0 kp/s。这进一步证明系统在高峰时段主要负责接收外部数据。

  • 数据量传输分析(Receive/Transmit Data Size)系统总共接收到的数据量为 14.4 TiB,远大于系统发送的数据量(1.86 TiB)。环回接口(lo)的接收和发送数据量均为 7.04 TiB,表明大量数据处理在本地进行。

综合分析上述指标,可以得到以下结论:

  • 高峰期网络压力系统在特定时段会遇到较大的写入请求,接收速率高达 80 MiB/s,可能是由于 IoTDB 在这些时段执行大批量数据写入或数据采集任务所致。

  • 带宽与处理能力当前的网络环境能够支持大流量接收,但随着时间推移和数据量增长,高峰期频繁出现或加剧可能会影响整体性能。

03

总结

通过上述详细的网络负载估算分析,我们可以计算出 IoTDB 单节点所需的网卡规格。根据分析结果,我们建议在日常负载需求下使用千兆网卡,而在流量较大或高峰期的场景中,可以选择万兆网卡。在部署 IoTDB 集群后,我们可以通过 Grafana 仪表盘来实时监控网络 IO,其提供了详细的网络性能信息,帮助发现潜在的瓶颈或问题。结合关键的网络速度、数据总量和包速率指标,可以及时优化系统性能,并确保网络负载在合理范围内。

至此,IoTDB 与网络带宽的故事就告一段落了。如果您对 IoTDB 有更多想法或问题,欢迎留言交流!

规上企业应用实例

能源电力:中核武汉|国网信通产业集团|华润电力|大唐先一|上海电气国轩|清安储能|某储能厂商|太极股份

航天航空:中航机载共性|北邮一号卫星

钢铁冶炼:宝武钢铁|中冶赛迪

交通运输:中车四方|长安汽车|城建智控|德国铁路

智慧工厂与物联:PCB 龙头企业|博世力士乐|德国宝马|京东|昆仑数据|怡养科技|绍兴安瑞思

75d0a02ffe674bd1e5ce05634c6e4094.gif

22d671a98578c0eea19e0e2b6d4200e0.jpeg

0ed3faee8ca81cdc8e5f5dcfa97bc418.jpeg

756db11561edde51944f240663f61391.jpeg

d4cb8a0526b542640110977318cce384.gif


http://www.niftyadmin.cn/n/5682527.html

相关文章

ansible 配置

目录 1.集群自动化维护工具 ansible 2.ansible管理架构 3.安装ansible 4.Iventory主机模式 5.通过ping验证 6.ansible常用模块 7.命令行模块 7.1command模块 7.2shell模块 7.3scripts模块 7.4file模块 7.5copy模块​ 7.6yum模块 1.集群自动化维护工具 ansibl…

uniapp url取消#

hbuilder uniapp取消hash(#)模式 manifest.json "h5": { "template": "static/index.html", "devServer": { "port": 9290, "https": false }, "…

高校实训产品:动漫和游戏场景AI实训平台建设方案

一、行业背景 随着动漫游戏产业的蓬勃发展,市场对高质量的角色造型设计、场景建模、原画创作以及游戏动画的需求日益增长。动漫游戏产业已成为文化产业的重要组成部分,不仅在国内市场占据重要地位,还在全球范围内展现出强大的竞争力。然而&a…

kali linux 终端复用和界面移动

kali linux 终端复用和界面移动 经验和操作 渗透测试的工具选择考虑 01 能用命令行就不用图形ui 图形ui 容易对细节隐藏,命令行工具的在终端输出的日志相对透明,容易观察和调整 wireshark – tcpdump burpsuit – curl( web 访问相关), wfuzz(模糊测…

android12/13/14版本wms最新面试题:dumpsys window和sf一定会一致么?

背景: 近期学员们学习了马哥wms课程后,去参加相关的大厂的framework面试,有一个学员朋友带回来了一个wms相关的面试题,具体面试题描述如下: 问题1 请问wms的window和SurfaceFlinger的Layer有什么关系? 回…

【Linux实践】实验五:用户和组群账户管理

【Linux实践】实验五:用户和组群账户管理 实验目的实验内容实验步骤及结果1. 创建用户2. 切换用户3. 修改用户4. 删除用户5. 创建组群6. 修改组群补充:删除组群 实验目的 1、掌握字符界面下用户账户的设置,包括命令useradd、usermod、userde…

浅谈计算机神经网络基础与应用

1. 绪论 随着科技的飞速发展,人工智能(AI)已经逐渐渗透到我们生活的方方面面。作为AI技术的核心组成部分,神经网络在推动这一领域的发展上扮演着至关重要的角色。本报告旨在探讨AI中的不同类型神经网络及其在实际应用中的表现和影响。我们将从神经网络的基本概念入手,逐步…

代码随想录Day17 图论-3

并查集理论基础 学习并查集 我们就要知道并查集可以解决什么问题 并查集主要有两个功能&#xff1a; 将两个元素添加到一个集合中判断两个元素在不在同一个集合 以下是代码模板 int n 1005; // n根据题目中节点数量而定&#xff0c;一般比节点数量大一点就好 vector<i…