从网卡到应用:全链路延迟优化实战
📚 共计 30 章节
01
延迟优化全景图
为什么需要全链路优化?从网卡到应用的延迟构成与优化总览。
总览
架构
02
硬件基础:网卡与中断
网卡(NIC)工作原理与中断机制(MSI-X、NAPI)。
硬件
中断
03
驱动优化:内核bypass
内核bypass技术(DPDK、XDP)原理与适用场景。
DPDK
XDP
04
中断优化
中断合并(Coalescing)、中断亲和性(IRQ Affinity)与CPU隔离。
亲和性
隔离
05
协议栈优化
内核协议栈瓶颈分析,套接字(Socket)缓冲区调优。
Socket
缓冲区
06
TCP优化
TCP_NODELAY、TCP快速打开(TFO)、窗口缩放与拥塞控制算法选择。
TFO
拥塞控制
07
用户态协议栈
基于DPDK的TCP/IP协议栈实现原理与性能对比。
DPDK
用户态
08
内存优化
大页(HugePages)、内存池(Memory Pool)与NUMA感知。
HugePages
NUMA
09
CPU优化
CPU绑定(CPU Pinning)、线程调度策略与上下文切换优化。
Pinning
调度
10
锁优化
自旋锁、读写锁、无锁队列与RCU机制在低延迟场景下的选择。
无锁
RCU
11
缓存优化
CPU缓存行对齐、预取(Prefetch)与写合并(Write Combining)。
缓存行
预取
12
异步编程
Reactor模式、Proactor模式与协程在高性能I/O中的应用。
Reactor
协程
13
I/O模型
select/poll/epoll与io_uring的性能对比与选型。
epoll
io_uring
14
零拷贝技术
mmap、sendfile、splice与DMA直接内存访问。
sendfile
DMA
15
序列化优化
Protocol Buffers、FlatBuffers与Cap'n Proto的延迟对比。
Protobuf
FlatBuffers
16
内存分配器
jemalloc、tcmalloc与mimalloc在延迟敏感场景下的表现。
jemalloc
tcmalloc
17
日志优化
异步日志、无锁日志缓冲区与日志级别动态调整。
异步
无锁
18
网络框架
Netty、libuv与asio的延迟特性分析与调优。
Netty
libuv
19
消息队列
Kafka、RabbitMQ与NATS的端到端延迟对比与配置优化。
Kafka
NATS
20
数据库延迟
连接池、预编译语句、索引优化与读写分离。
连接池
索引
21
缓存策略
Redis、Memcached与本地缓存(Caffeine)的延迟权衡。
Redis
Caffeine
22
RPC优化
gRPC、Thrift与RSocket的序列化与传输延迟对比。
gRPC
RSocket
23
负载均衡
LVS、Nginx与Envoy的转发延迟与连接管理。
LVS
Envoy
24
容器网络
CNI插件(Calico、Flannel)与eBPF对网络延迟的影响。
Calico
eBPF
25
服务网格
Istio Sidecar代理引入的延迟开销与优化方案。
Istio
Sidecar
26
全链路追踪
OpenTelemetry与Jaeger在延迟分析中的实践。
OpenTelemetry
Jaeger
27
性能测量
延迟百分位数(P99/P999)、测量误差与时钟同步(NTP/PTP)。
P99
NTP
28
案例分析:高频交易
高频交易系统的延迟优化实战(从硬件到应用)。
HFT
实战
29
案例分析:视频直播
视频直播场景的端到端延迟优化(编码、传输、播放)。
直播
编码
30
未来趋势
CXL互连、SmartNIC、DPU与计算存储融合对延迟的影响。
SmartNIC
DPU