Flow Size Prediction with Short Time Gaps

Flow Size Prediction with Short Time Gaps

网络流量预测新突破:微秒级短流预测的可行性分析

在当今数据中心和云计算环境中,网络流量的精准预测是优化资源分配、实现智能负载均衡的关键。传统流量和预测聚焦于长时间间隔(如秒级或分钟级)的聚合流量,对于微秒到毫秒级的短流预测研究较少。本文提出了一种基于低级别事件特征的短流预测方法。

研究背景:为什么短流预测如此重要?

现代网络控制功能(如流量调度、拥塞避免)需要实时响应能力。例如,在流量控制中,若能提前预知下一个流的大小,可动态调整链路带宽分配,或者可将其分类为“大象流”或“小鼠流”,并分配不同优先级,避免链路出现流量过载等现象,短时间间隔(如微秒级)下的流动态变化极快,传统基于统计或深度学习的预测方法难以捕捉瞬时模式。

  • 短流:时间间隔短(微秒级),数量多,常见于分布式计算任务(如Spark、PyTorch)
  • 长流:时间间隔长(毫秒级),数量少,但流量大

秒级短流预测具体实现

数据收集器架构图如下,主要有三个模块组成,分别是Packet Traces、Polling Traces以及Event Traces。

在这里插入图片描述

数据收集器

  • Packet Traces模块——流提取
采集方法:

PF_RING库(第三方的内核数据包捕获接口,类似于libpcap),该数据包捕获机制目标是降低内核协议栈开销,提高数据包处理性能,通过内核旁路方式直接获取网卡数据包,采用Zero Copy 机制 避免不必要的内存拷贝,核心架构由mmap、Polling以及Ring Buffer组成。核心如下:

在这里插入图片描述

  • 应用调用mmap进行内存映射;
  • 数据包到达网卡后,处理器以轮询的方式将数据包写到环形buffer;
  • 应用调用read从环形buffer里面读数据包;

具体实现源码分析地址:深入理解PF_RING内核数据包捕获接口-CSDN博客

PF_RING库官方仓库地址:ntop/PF_RING: High-speed packet processing framework

采集的指标:
源地址
目的地址
数据包大小
数据包到达时间
  • Polling Traces模块–跟踪主机负载
采集方法:

定期轮询操作系统的/proc目录,该目录包括各种文件和目录,每个文件和目录提供有关系统资源利用的各个方面的信息,具体保存在/proc/[process_id]/stat文件。

采集指标:
主机可用内存
进程占用的物理内存
进程内核态运行时间
  • Event Traces模块

采集方法:

eBPF技术

采集指标:

挂载点选择tcp_sendmsg,指标是tcp_sendmsg触发次数

流量预测建模

流量采集

  • 从数据包跟踪(packet trace)中提取流,每个数据包包含源 IP、源端口、目的 IP、目的端口、数据包大小和到达时间等信息。
  • 按照源 IP+端口 和 目的 IP+端口对数据包进行分组,形成通信路径(例如,IpA:portA → IpB:portB)。
  • 在同一条通信路径上,如果两个数据包之间的时间间隔大于设定的阈值,则认为属于不同的流。
  • 该流提取过程会针对不同的流时间间隔重复进行,以确保数据集覆盖多种时间粒度。

特征提取

流量特征来自三类数据源,每种数据源采用不同的特征提取方法:

  1. 网络特征
    • 通过聚合每个流中的数据包信息提取特征,例如:
      • 网络输出流量(network-out):从工作负载执行开始到流开始前,发送到目标主机的所有数据包总大小。
      • IP 和端口信息(src_ip、dest_ip、src_port、dest_port)。
      • 流时间间隔(gap)(流与流之间的时间间隔)。
  2. 轮询数据特征
    • 取流开始前最后一次采集到的系统状态值,例如:
      • memavailable(主机上可用内存)。
      • stime(工作负载进程的内核态运行时间)。
      • rss_memory(进程使用的物理内存)。
  3. 基于事件的特征
    • 提取流开始前最近发生的事件信息:
      • 最后一次事件的值(如某个系统事件的状态)。
      • 事件到流开始的时间间隔(tt_featurename)

为了考虑历史流量对当前流量的影响,将前 K(K=5)个流的特征加入当前流的特征集中。额外加入历史流量大小作为特征,即前 t 个流量的大小。


流量预测任务有两种方式:

  1. 基于回归
    • 预测下一个流的精确大小,属于回归问题,每个流的目标值是下一个流的大小
  2. 基于分类
    • 将流量分为小流和大流,形成二分类问题:
      • 1 代表大流。
      • 0 代表小流。
    • 数据集中可能存在类别不均衡问题(例如,在 Spark 负载下,5000 微秒时间间隔内大流占 40%)。

模型算法——CatBoost算法

优势

(1)提供了相对较小的训练数据集的鲁棒结果,使其适用于数据收集时间较短的任务,也适用于低延迟环境(例如数据中心)。

(2)需要最小的模型优化和超参数调优。

(3)允许我们识别影响每个工作负载中生成的流大小的主机方面。

CatBoost原理部分:这次终于彻底理解了 CatBoost 原理及应用-CSDN博客

实验部分

在AWS环境中部署了3节点集群,分别运行Spark(EMR实例)和PyTorch(EC2 GPU实例)工作负载。通过PF_RING库捕获网络包元数据,eBPF跟踪系统调用事件(如send()malloc()),并定期轮询/proc目录获取主机状态。实验覆盖500–30000微秒的流时间间隔,结果显示:

  • Spark SVM:扩展特征集使R²提升0.2,事件特征(如tcpsendmsg)占比超30%。
  • PyTorch GPT:网络特征主导预测,MAPE低至2%,表明参数同步流量高度规律。
  • 分类任务:直接分类模型F1分数(0.85)显著优于阈值回归方法(0.65)。

可取之处:

1、数据采集部分考虑的比较全面,多维度采集,解决单一数据源的局限性。考虑了影响网络流量的多种原因,覆盖了网络流量的全部生命周期:

(1)网络包追踪:直接捕获流量结果层面的信息(如包大小、时间间隔、IP/端口)。但是仅能反映“已发生”的流量行为,无法解释流量生成的原因(如主机资源状态、应用逻辑触发)。不足之处在于:若某流量突增,网络包数据只能显示流量大小和时间,但无法回答“为何突增”——是内存不足触发了数据落盘?还是某个函数调用触发了参数同步?

(2)轮询追踪:捕获系统资源状态(内存、CPU、磁盘I/O),反映主机负载对流量生成的间接影响。因为内存不足时会导致频繁换页,间接影响网络发送速率,高CPU利用率可能伴随计算密集型任务的通信需求增加。

(3)事件追踪(eBPF):选择流量生成的最后一步(数据即将发送到网络前调用),挂载**tcp_sendmsg** 采集五元组信息,数据包大小、时间戳。

2、采用静态阈值法对流量进行分类:

  • 大象流(Elephant Flows):若某一流在传输过程中占用的带宽超过当前链路总带宽的10%,则被标记为大象流。
  • 小鼠流(Mice Flows):带宽占比小于或等于10%的流

流量带宽计算

  • 对于每个流,计算其总传输数据量(字节)和持续时间(微秒)。
  • 带宽占用率公式:
    带宽占比 = (流总大小(字节) × 8 ) / 链路带宽( b p s ) × 流持续时间(秒) 带宽占比=(流总大小(字节)×8)/链路带宽(bps)×流持续时间(秒) 带宽占比=(流总大小(字节)×8/链路带宽(bps×流持续时间(秒)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/72736.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pandas——to_datatime用法

Pandas中pd.to_datetime的用法及示例 pd.to_datetime 是 Pandas 库中用于将字符串、整数或列表转换为日期时间(datetime)对象的核心函数。它在处理时间序列数据时至关重要,能够灵活解析多种日期格式并统一为标准时间类型。以下是其核心用法及…

数学建模:MATLAB强化学习

一、强化学习简述 强化学习是一种通过与环境交互,学习状态到行为的映射关系,以获得最大积累期望回报的方法。包含环境,动作和奖励三部分,本质是智能体通过与环境的交互,使得其作出的动作所得到的决策得到的总的奖励达…

【leetcode hot 100 160】相交链表

解法一:(哈希集合)利用HashSet保存一个链表的值,循环另一个列表,在HashSet中寻找该值。 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x…

19. 大数据-技术生态简介

文章目录 前言一、Hadoop介绍1. 简介2. Hadoop发展史3. Hadoop现状 二、Hadoop特性1. Hadoop国外应用2. Hadoop国内应用 三、Hadoop架构变迁1. 发行版本2. Hadoop架构变迁(1.0-2.0变迁)3. Hadoop架构变迁(3.0新版本)4. 综述 四、技术生态体系 前言 大数据(Big Data…

DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)示例3: 行选择

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 Deep…

VsCode 快捷键备忘

移动光标及选择文本 Ctrl ← / → :以单词为单位移动游标Home / End:光标移到行首/行位Ctrl Home / End:光标移到文件首和文件尾Ctrl Shift \:在匹配的分隔符之间跳转 配对的分隔符 是指分隔代码元素的字符,比如字…

用数据唤醒深度好眠,时序数据库 TDengine 助力安提思脑科学研究

在智能医疗与脑科学快速发展的今天,高效的数据处理能力已成为突破创新的关键。安提思专注于睡眠监测与神经调控,基于人工智能和边缘计算,实现从生理体征监测、智能干预到效果评估的闭环。面对海量生理数据的存储与实时计算需求,安…

SQL_语法

1 数据库 1.1 新增 create database [if not exists] 数据库名; 1.2 删除 drop database [if exists] 数据库名; 1.3 查询 (1) 查看所有数据库 show databases; (2) 查看当前数据库下的所有表 show tables; 2 数据表 2.1 新增 (1) 创建表 create table [if not exists…

Qt 开发 OpenGL 程序流程

在用 Qt 开发 OpenGL 程序时,整体的工作流程分为几个关键步骤,最终目的是将数据传递给 GPU 并开始渲染。这一过程涉及到从代码编写到与着色器连接的多个操作,下面我将详细讲解每个步骤。 1. 设置 Qt 项目 这个步骤是准备工作,你首…

长短期记忆网络(LSTM)学习指南

长短期记忆网络(LSTM)学习指南 1. 定义和背景 长短期记忆网络(Long Short-Term Memory, LSTM)是一种递归神经网络(RNN)的变体,旨在解决传统RNN在处理长期依赖关系时遇到的梯度消失或爆炸问题。…

仿12306项目(4)

基本预定车票功能的开发 对于乘客购票来说,需要有每一个车次的余票信息,展示给乘客,供乘客选择,因此首个功能是余票的初始化,之后是余票查询,这两个都是控台端。对于会员端的购票,需要有余票查询…

第十二届蓝桥杯 异或数列

原题: https://www.acwing.com/problem/content/3424/ 题目大意: A、B两人的数初始值均为0,他们轮流从X数组中取数,可以将该数与自己的数或对方的数进行异或操作,A先手,当X中的数被取完的时候谁的数大谁…

微服务的认识与拆分

微服务架构通过将应用分解为一组小的、独立的服务来实现,每个服务围绕特定业务功能构建,并能独立部署与扩展。这种架构增强了开发灵活性、提高了系统的可维护性和扩展性,使得团队可以更快地响应变化和市场需求。 目录 认识微服务 单体架构 …

高效编程指南:PyCharm与DeepSeek的完美结合

DeepSeek接入Pycharm 前几天DeepSeek的充值窗口又悄悄的开放了,这也就意味着我们又可以丝滑的使用DeepSeek的API进行各种辅助性工作了。本文我们来聊聊如何在代码编辑器中使用DeepSeek自动生成代码。 注:本文适用于所有的JetBrains开发工具&#xff0c…

项目中同时使用Redis(lettuce)和Redisson的报错

温馨提示:图片有点小,可以放大页面进行查看... 问题1:版本冲突 直接上图,这个错表示依赖版本不匹配问题,我本地SpringBoot用的是2.7,但是Redisson版本用的3.32.5。 我们通过点击 artifactId跟进去 发现它…

Jackson 详解

目录 前言 Jackson 是 Java 生态中最流行的 JSON 处理库之一,广泛应用于 RESTful API、数据存储和传输等场景。它提供了高效、灵活的 JSON 序列化和反序列化功能,支持注解、模块化设计和多种数据格式(如 XML、YAML)。本文将详细介…

H.264,H.265,H.266标准技术改进

关于H.264,H.265,H.266相关资料链接: 标准及中文资料链接 视频编码中的主要技术 视频编码的目标是在保证视频质量的前提下,尽可能减少数据量。以下是视频编码中的核心技术: 块划分(Block Partitioning) 将视频帧划分…

clickhouse安装路径

《ClickHouse安装路径指南》 大家好,今天我们将一起学习如何在电脑上找到和理解ClickHouse的安装路径。这将帮助学生、科研人员以及任何对数据库技术感兴趣的人更好地管理他们的数据查询工作。 ClickHouse是一款列式存储数据库管理系统(DBMS&#xff09…

时序数据库 InfluxDB 3.0 版本性能实测报告:写入吞吐量提升效果验证

亮点总结: TSBS 测试表明,对于少于 100 万台设备的数据集,InfluxDB OSS 3.0 的数据写入速度实际上比 InfluxDB OSS 1.8 更慢。 对于 100 万台及以上设备的数据集,InfluxDB OSS 3.0 的数据写入性能才开始超过 InfluxDB OSS 1.8。…

AS32X601双核锁步MCU技术优势分析

AS32X601是国科安芯公司研制的一系列基于32位RISC-V指令集车规级MCU处理器芯片。主频高达180MHz,支持双核锁步架构,基于软错误防护技术加持,显著提高芯片安全性能。产品具有高安全、低失效、多IO、低成本、抗辐照等特点。 一、功能安全与可靠…