CPU 寄存器 (最快, ~1ns)
→ L1 Cache (~1ns, 32KB)
→ L2 Cache (~4ns, 256KB)
→ L3 Cache (~12ns, 8-32MB)
→ 主存 RAM (~100ns, GB级别)
→ SSD (~100μs, TB级别)
→ HDD (~10ms, TB级别)
每个进程拥有独立的虚拟地址空间,通过 MMU(内存管理单元)将虚拟地址翻译为物理地址。
虚拟地址 → 页表(Page Table) → 物理地址
↓ (miss)
TLB (Translation Lookaside Buffer)
高地址 ┌──────────────┐
│ Kernel Space │ (不可直接访问)
├──────────────┤
│ Stack │ ↓ 向下增长
│ ... │
│ mmap region │ (共享库、文件映射)
│ ... │
│ Heap │ ↑ 向上增长 (brk/sbrk)
│ BSS │ (未初始化数据)
│ Data │ (已初始化数据)
低地址 └──────────────┘ Text (代码段)
cat /proc/slabinfoswappiness 参数(0-100)控制倾向内存耗尽时内核的选择机制:
oom_score(0-1000,越高越可能被杀)oom_score_adj 可以手动调整(-1000 豁免,1000 优先杀)free -h # 内存概览
vmstat 1 # 内存活动统计
cat /proc/meminfo # 详细内存信息
pmap -x <PID> # 进程内存映射
smem -p # PSS/USS/RSS 分析
| 字段 | 含义 |
|---|---|
| MemTotal | 总物理内存 |
| MemAvailable | 可用内存(含可回收缓存) |
| Buffers | 块设备缓冲 |
| Cached | Page Cache |
| SwapTotal/SwapFree | 交换空间 |