会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
Tohomson
博客园
首页
新随笔
联系
订阅
管理
2025年4月27日
DPDK CPU Packet Processing - 4. IP分片与重组库
摘要: 4.1 数据包分片(Packet fragmentation) 数据包分片例程(fragmentation routines)用于将输入的数据包划分成多个片段。 函数 rte_ipv4_fragment_packet() 和 rte_ipv6_fragment_packet() 都假设: 输入的 m
阅读全文
posted @ 2025-04-27 22:36 Tohomson
阅读(120)
评论(0)
推荐(0)
2025年4月26日
DPDK CPU Packet Processing - 3. Membership Library
摘要: 3.1 简介 DPDK 的成员库(Membership Library)为 DPDK 应用提供了一套 API,用于将新成员插入集合、从集合中删除已有成员,或者查询某个成员是否属于某个集合,或者某组集合。对于集合组的情况,该库不仅可以判断一个元素是否曾被插入,还能返回它属于哪一个集合。 成员库是对传统
阅读全文
posted @ 2025-04-26 16:44 Tohomson
阅读(84)
评论(0)
推荐(0)
2025年4月25日
DPDK CPU包处理 - Hash Library
摘要: DPDK 提供了一个哈希库,用于创建哈希表以实现快速查找。哈希表是一种数据结构,经过优化,可以快速地在一组条目中进行搜索,每个条目都有一个唯一的键来标识它。为了提高性能,DPDK 的哈希要求所有的键具有相同的字节数,这个字节数是在哈希创建时设置的。 2.1 哈希 API 概览 哈希表的主要配置参数包
阅读全文
posted @ 2025-04-25 22:44 Tohomson
阅读(137)
评论(0)
推荐(0)
2025年4月22日
4 CPU包处理 - 1.Toeplitz 哈希库
摘要: DPDK 提供了一个 Toeplitz 哈希库(Toeplitz Hash Library),用于计算 Toeplitz 哈希函数以及利用其特性进行相关操作。 Toeplitz 哈希函数是一种常见的散列算法,被广泛用于多种网络接口卡(NIC)中,用于计算 接收端散列(RSS,Receive Side
阅读全文
posted @ 2025-04-22 22:46 Tohomson
阅读(313)
评论(0)
推荐(0)
2025年4月4日
DPDK CPU管理 多线程
摘要: DPDK 通常将每个 pthread(线程)绑定到一个 CPU 核心上,以避免任务切换带来的开销。 这种方式能显著提升性能,但缺乏灵活性,且在某些情况下效率并不高。 电源管理功能可以通过限制 CPU 的运行频率来提升能效。然而,作为替代方案,也可以利用 CPU 空闲周期,进一步发挥其全部性能。 借助
阅读全文
posted @ 2025-04-04 16:38 Tohomson
阅读(183)
评论(0)
推荐(0)
2025年4月2日
内存池
摘要: 内存池是什么? 内存池是一种提前申请好一块大内存,再从中按需划分固定/可变大小的内存块进行复用的技术。 内存的申请和释放操作不再频繁调用 malloc/free 或 new/delete,而是从池中“取”或“还”。 使用内存池的原因: 减少系统调用开销,提高性能; 系统的malloc/free需要陷
阅读全文
posted @ 2025-04-02 19:33 Tohomson
阅读(61)
评论(0)
推荐(0)
DPDK - CPU管理 - 01 EAL 1.1 EAL 在 Linux 用户态执行环境中的表现
摘要: EAL是什么 EAL:Environment Abstraction Layer,环境抽象层。EAL 是 DPDK 最核心的基础模块之一,它负责整个运行环境的初始化,包括 CPU、内存、设备的配置与绑定。通过提供统一的抽象接口,EAL 隐藏了操作系统与硬件的复杂性,为上层应用程序提供了一个干净、可移
阅读全文
posted @ 2025-04-02 17:26 Tohomson
阅读(171)
评论(0)
推荐(0)
2025年4月1日
内存管理部分 04 - DPDK的多进程
摘要: 内存管理 - 4. 多进程支持 DPDK 的设计目标是提升网络数据包的处理性能。多进程支持使得多个 DPDK 进程能够协作执行任务,从而提高并行处理能力,减少资源竞争,并且能够处理更大规模的网络流量。DPDK有两种不同的进程类型,一种是主进程,一种是从进程; 主进程可以进行初始化,对内存有完全的权限
阅读全文
posted @ 2025-04-01 19:23 Tohomson
阅读(210)
评论(0)
推荐(0)
线程池的设计与实现 C && C++17
摘要: 常见的池式结构:线程池、连接池、内存池、对象池、协程池、线程池 常见的“池式结构” 池类型 描述 应用场景 线程池(Thread Pool) 复用固定数量的线程来处理大量任务 并发服务器、任务调度系统 连接池(Connection Pool) 复用数据库连接、HTTP连接等资源 Web服务访问数据库
阅读全文
posted @ 2025-04-01 11:16 Tohomson
阅读(392)
评论(0)
推荐(0)
2025年3月31日
DPDK 内存管理 - 03 mbuf库
摘要: Packet(MBuf)库概述: 这个库提供了分配和释放缓冲区(mbuf)的能力,DPDK 应用可以使用这些缓冲区来存储各种类型的数据,比如: 网络数据包(最常见) 控制信息(control data) 事件(events) 或其他需要临时存储的数据 这些 mbuf 缓冲区的底层是通过 Mempoo
阅读全文
posted @ 2025-03-31 19:10 Tohomson
阅读(322)
评论(0)
推荐(0)
下一页
公告