标签

#Numa

2 篇

低延迟系统开发 #6 约 32 分钟

内存对齐、布局与缓存和 DRAM 的几何

访问从来不按字节付钱,按缓存行付;地址决定了碰哪几条行、这些行争哪个缓存组、住在哪个 DRAM 通道和 bank。第一部分讲对齐:为什么按 8 对齐的 double 不会跨行、填充为什么是为了数组、alignas 写在类型上和成员上的区别、堆上怎么拿 64 和 2 MiB 对齐。第二部分讲布局:一次访问碰几条行,AoS 还是 SoA,去规范化砍掉的是依赖链。第三部分进到硬件:L1 用地址的 bit 6–11 选组,相差 4 KiB 的数据不管缓存多空都在抢 …

低延迟系统开发 #1 约 14 分钟

CPU 隔离与 NUMA

低延迟系统怕的是抖动,不是平均值。目标是让热线程成为它那个物理核上唯一在跑的东西:绑核消掉迁移,隔离参数把调度、时钟中断、RCU 和设备中断赶到打杂核,关超线程、禁深睡、锁频率去掉核自身的波动,最后让热线程只碰本节点的内存。