可能影响数据包处理速度的内存问题

发布时间 2023-06-28 18:19:19作者: 朝花不夕拾
可能影响数据包处理速度的内存问题和解决方案
内存问题分类 问题描述 解决问题的思路和方案
Cache一致性的问题 如果2个数据结构属于同一个Cache Line,在2个核分别访问2个数据结构时,CPU将花费额外时间处理竞争和同步 使所有数据结构按照Cache Line对齐
假设数据结构是Cache Line 对齐的,但有多个核对该段内存进行读写,那么CPU将花费额外时间来处理Cache一致性问题 为每个核分配单独的内存段
TLB miss 问题 如果采用常规大小的页(4KB),需要两级页表,不仅增加了寻址时间,大量的表项还容易引起 TLB MISS 采用大页
内存读写速度问题 CPU数据数据的过程中需要频繁访问内存。但相比CPU的运行速度,内存的响应速度要慢很多。

1. 采用DDIO技术,使网卡和CPU通过LLC Cache 交换数据;

2. 多通道内存并行访问;

缓存的分配和释放消耗时间的问题 在收发数据包的过程中,需要频繁的分配/释放数据包缓存,如果每次都从“堆”中分配,消耗的时间较长。 提前从“堆”中申请一大块内存作为内存池,再从内存池中快速获取内存。