自营交易系统 · 微秒级性能优化实战

📚 共计 30 章节
01
性能基准与度量
理解微秒级延迟、吞吐量与抖动,建立性能基线。
基线度量
02
硬件架构与NUMA亲和性
CPU缓存层级、NUMA节点绑定、避免跨核通信。
NUMA缓存
03
内核旁路技术
DPDK与Solarflare OpenOnload的原理与选型。
DPDK旁路
04
网卡调优
RSS、多队列、中断合并与忙轮询(NAPI)。
RSSNAPI
05
内存池与对象池
预分配、无锁内存池设计,避免动态分配。
内存池无锁
06
无锁数据结构
无锁队列(LCRQ、MPMC)、无锁哈希表。
无锁MPMC
07
原子操作与内存屏障
CAS、FAA、StoreLoad屏障的正确使用。
原子屏障
08
缓存行对齐与伪共享
__attribute__((aligned(64)))、padding技巧。
缓存行伪共享
09
分支预测与流水线优化
likely/unlikely宏、消除分支。
分支预测流水线
10
编译器优化
LTO、PGO、内联控制、循环展开。
LTOPGO
11
指令集优化
SIMD(SSE/AVX)加速计算与数据拷贝。
SIMDAVX
12
零拷贝技术
sendfile、splice、RDMA、共享内存。
零拷贝RDMA
13
序列化与反序列化
FlatBuffers、Cap'n Proto vs Protobuf。
序列化FlatBuffers
14
协议栈优化
自定义UDP协议、精简TCP头部、避免Nagle。
UDPNagle
15
时间戳精度
PTP硬件时间戳、TSC寄存器读取。
PTPTSC
16
日志与监控
异步日志、无锁环形缓冲区、低开销打点。
异步日志打点
17
线程模型
Reactor vs Proactor、单线程事件循环、绑核。
Reactor绑核
18
锁优化
读写锁、自旋锁、RCU、futex。
RCUfutex
19
内存分配器
jemalloc/tcmalloc vs 默认malloc、per-thread缓存。
jemalloctcmalloc
20
系统调用优化
io_uring、mmap、避免上下文切换。
io_uringmmap
21
网络延迟优化
TCP_NODELAY、SO_BUSY_POLL、RFS/RPS。
TCP_NODELAYRFS
22
订单处理流水线
从网卡到应用的全链路延迟拆解。
全链路延迟拆解
23
行情解析优化
二进制协议解析、SIMD加速、预取。
行情预取
24
风控计算优化
实时计算、预计算、缓存结果。
风控预计算
25
撮合引擎优化
订单簿数据结构(跳表、红黑树、哈希表)。
撮合跳表
26
延迟测试方法
硬件打点、FPGA抓包、statistical profiling。
打点FPGA
27
性能调优工具
perf、flamegraph、bpftrace、Valgrind。
perfflamegraph
28
混沌工程与延迟注入
模拟网络抖动、CPU限频。
混沌延迟注入
29
多数据中心部署
时间同步、数据一致性、跨DC延迟。
跨DC一致性
30
实战案例:从100μs到10μs
从100微秒到10微秒的优化全记录。
实战全记录