40 lines
1.6 KiB
Markdown
40 lines
1.6 KiB
Markdown
---
|
||
title: "NUMA"
|
||
type: concept
|
||
tags: [sre, performance, cloud, containers, cpu]
|
||
last_updated: 2026-04-20
|
||
---
|
||
|
||
# NUMA (Non-Uniform Memory Access)
|
||
|
||
NUMA(非一致性内存访问)是一种多处理器计算机架构中的内存访问模式,对现代容器化部署有重要影响。
|
||
|
||
## Definition
|
||
在 NUMA 架构中,CPU 和内存被组织成多个节点(nodes)。每个 CPU 访问本地内存节点的速度远快于访问远程内存节点的速度,因此称为"非一致性"内存访问。
|
||
|
||
## Key Concepts
|
||
- **NUMA Node**:由一个或多个 CPU 和与其相连的内存组成
|
||
- **Local Memory Access**:CPU 访问本节点的内存,延迟低、带宽高
|
||
- **Remote Memory Access**:CPU 访问其他节点的内存,延迟高、带宽低
|
||
- **CPU Pinning**:将进程/容器固定到特定 CPU,以优化内存局部性
|
||
|
||
## Why SREs Should Care
|
||
Netflix 在现代 CPU 上运行容器时发现:
|
||
- 运行 100 个容器需要超过 **2 万次挂载操作(mounts)**
|
||
- NUMA 问题是影响容器调度性能的关键因素
|
||
- SRE 必须关注**整个技术栈**,包括硬件层面的 NUMA 拓扑
|
||
|
||
## Implications for Container Scheduling
|
||
1. **NUMA-Aware Scheduling**:调度器应感知 NUMA 拓扑,避免跨节点内存访问
|
||
2. **CPU Pinning**:对延迟敏感的应用(如 Netflix 媒体处理)需要将容器固定到特定 CPU
|
||
3. **内存局部性优化**:减少跨 NUMA 节点的内存访问可显著降低延迟
|
||
|
||
## Related Concepts
|
||
- [[Containers]]
|
||
- [[Kubernetes]]
|
||
- [[Performance-Benchmarking]]
|
||
- [[Cloud-Native]]
|
||
|
||
## Source
|
||
- SRE Weekly Issue #513 — [[sre-weekly-issue-513]] (Netflix Mount Mayhem case study)
|