交易系统延迟测量与优化手册
📚 共计 30 章节
01
延迟的起源:从物理极限到软件开销
理解交易系统中每一纳秒的构成
物理层
纳秒分析
02
测量工具链:硬件时间戳与内核追踪
软件打点、用户态测量精度对比
时间戳
精度
03
网络栈优化:从NIC到应用
绕过内核的DPDK与RDMA实战
DPDK
RDMA
04
内核旁路技术:用户态协议栈
共享内存与零拷贝的取舍
零拷贝
共享内存
05
CPU调优:绑核与缓存行对齐
中断亲和性、频率锁定
绑核
缓存对齐
06
内存屏障与原子操作
理解现代CPU内存模型,避免指令重排
内存屏障
原子操作
07
编译器优化:-O3的陷阱与内联控制
循环展开、分支预测提示
编译器
-O3
08
数据结构选择:数组 vs 链表
预分配 vs 动态分配、无锁队列实现
无锁队列
预分配
09
序列化与反序列化:Protobuf对比
FlatBuffers、Cap'n Proto延迟对比
序列化
FlatBuffers
10
日志系统的性能陷阱
异步日志、缓冲区设计、避免IO阻塞
异步日志
IO阻塞
11
多线程与锁优化
读写锁、自旋锁、RCU与无锁编程
RCU
自旋锁
12
内存分配器:tcmalloc vs jemalloc
mimalloc在低延迟场景下的表现
tcmalloc
jemalloc
13
网络协议选择:UDP vs TCP
多播、FIX协议与二进制协议延迟差异
UDP
FIX
14
硬件加速:FPGA、SmartNIC、GPU
在交易系统中的应用场景
FPGA
SmartNIC
15
时钟同步:PTP、NTP与硬件时间戳
分布式系统的时间一致性
PTP
NTP
16
回放与重演:精确复现延迟问题
生产环境延迟故障复现
回放
重演
17
性能基准测试:科学设计延迟用例
避免统计陷阱
基准测试
统计
18
尾延迟分析:P99、P999优化策略
最大延迟的优化策略
P99
尾延迟
19
GC暂停与实时Java:ZGC/Shenandoah
低延迟JVM调优
ZGC
JVM
20
C++ RAII与异常:异常路径延迟开销
替代方案与异常安全
RAII
异常
21
系统调用开销:gettimeofday/read/write
代价与替代方案
系统调用
开销
22
容器化与延迟:Docker/Kubernetes
网络与CPU隔离对延迟的影响
Docker
K8s
23
云环境下的延迟:AWS/Azure专用实例
弹性网卡、Placement Group
AWS
Placement
24
监控与告警:Prometheus/Grafana
自定义延迟指标采集
Prometheus
Grafana
25
混沌工程:主动注入延迟故障
验证系统鲁棒性
混沌工程
故障注入
26
交易网关优化:会话与心跳
登录握手、心跳机制延迟优化
网关
心跳
27
行情解码:原始数据包到订单簿
极速解析
行情
解码
28
订单路由:智能路由与最小延迟
最小延迟路径选择
路由
延迟
29
风控前置:纳秒级资金检查
订单校验与风控
风控
纳秒
30
全链路追踪:端到端延迟分析
从行情接收到订单回报
全链路
追踪