惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

腾讯CDC
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 叶小钗
人人都是产品经理
人人都是产品经理
博客园 - 聂微东
The Cloudflare Blog
爱范儿
爱范儿
阮一峰的网络日志
阮一峰的网络日志
WordPress大学
WordPress大学
小众软件
小众软件
博客园 - 三生石上(FineUI控件)
Last Week in AI
Last Week in AI
Jina AI
Jina AI
V
V2EX
罗磊的独立博客
V
Visual Studio Blog
A
About on SuperTechFans
IT之家
IT之家
P
Proofpoint News Feed
B
Blog
博客园 - Franky
Blog — PlanetScale
Blog — PlanetScale
Google DeepMind News
Google DeepMind News
Y
Y Combinator Blog

土法炼钢兴趣小组的算法知识备份

国密算法与国密 TLS 系列索引 【系统架构设计】架构质量属性:不只是"高可用高性能" 【系统架构设计百科】告警策略:如何避免"狼来了" 【系统架构设计】CQRS:读写分离的架构哲学 【系统架构设计】空间架构:极端扩展场景的解法 【系统架构设计】微服务架构深度审视:优势、代价与适用边界 【系统架构设计】扩展性原理:水平、垂直与对角扩展 【系统架构设计】无状态设计:扩展的第一步也是最难的一步 【系统架构设计】缓存架构:从本地到分布式的多级缓存体系 【系统架构设计】管道与过滤器:Unix 哲学的架构表达 【系统架构设计】复杂性管理:架构的核心战场 【系统架构设计】消息队列架构:异步解耦的设计与陷阱 【系统架构设计】CDN 架构:全球加速的设计原理 【系统架构设计】连接池设计:被忽视的性能杀手 【系统架构设计】弹性设计模式:熔断器、舱壁与超时 【系统架构设计】高可用设计模式:冗余、故障转移与仲裁 【系统架构设计】容量规划:从拍脑袋到数据驱动 【系统架构设计】数据库扩展:分库分表的工程实践与替代方案 【系统架构设计】SLO 工程:可靠性的量化管理 【系统架构设计】性能建模:用数学思维分析系统瓶颈 【系统架构设计】混沌工程:主动验证系统的韧性 【系统架构设计】零拷贝与内存映射:数据搬运的极致优化 【系统架构设计】线程模型:从 thread-per-request 到协程 【系统架构设计】容灾架构:多活与灾备设计 【系统架构设计】数据库性能模式:索引、查询与连接管理 【系统架构设计】数据建模:从关系范式到文档模型的真实权衡 【系统架构设计】吞吐量优化:批处理、流水线与并发模型 【系统架构设计】流处理架构:从批处理到实时的范式迁移 【系统架构设计】搜索引擎架构:倒排索引之上的系统设计 【系统架构设计】时序数据架构:监控与 IoT 的存储设计
【操作系统百科】可拆分 OS
2026-07-09 · via 土法炼钢兴趣小组的算法知识备份

传统 OS 假设 CPU、内存、存储在同一台机器上。CXL 和 RDMA 打破了这个假设——内存可以在别的机器上。

一、先看图

flowchart TD
    CPU[CPU 节点] -->|CXL| MEM[内存池<br/>共享/远程]
    CPU -->|RDMA| STORAGE[存储节点]
    CPU -->|网络| GPU[GPU 节点]

    OS[传统 OS<br/>假设本地资源] --> QUESTION[如何管理<br/>远程资源?]

    classDef local fill:#388bfd22,stroke:#388bfd,color:#adbac7;
    classDef remote fill:#f0883e22,stroke:#f0883e,color:#adbac7;
    class CPU local
    class MEM,STORAGE,GPU remote
    class OS,QUESTION remote

二、资源解耦

传统服务器:

CPU + 内存 + 存储 + 网卡 = 一台机器

解耦后:

CPU 池 + 内存池 + 存储池 = 按需组合

好处:资源利用率高 → 内存空闲的机器把内存”借”给别人。

3.1 CXL 1.0/2.0

CXL.mem → CPU 直接访问远程内存(load/store)
CXL.cache → 设备可以缓存主机内存
CXL.io → 类似 PCIe

3.2 CXL 3.0

  • 内存池化(Memory Pooling)
  • 多主机共享内存
  • 硬件一致性
  • 热插拔

3.3 对 OS 的影响

// 新的内存层次
DRAM(本地)→ CXL 近端 → CXL 远端 → 持久内存

OS 需要感知延迟差异 → 智能放置页面。

四、LegoOS

OSDI 2018 论文:

传统 OS → 拆分为:
  pComponent(处理器管理)
  mComponent(内存管理)
  sComponent(存储管理)

每个组件独立运行在不同的硬件上 → 通过网络通信。

4.1 远程页面错误

CPU 访问远程内存 → 页面错误 → 通过网络从 mComponent 获取页面

延迟:~1-10μs(RDMA)vs ~100ns(本地内存)。

五、Far Memory

5.1 软件方案

zswap → 本地压缩
远程 swap → 通过 RDMA 到远程内存

Google 的 Far Memory 论文:用远程内存作为 swap → 比 SSD 快 10 倍。

5.2 硬件方案

CXL 内存 → OS 感知的第二层内存 → 自动迁移热页面。

六、Linux 的适配

6.1 NUMA 扩展

# CXL 内存作为新 NUMA 节点
numactl --membind=2 ./my_app   # 绑定到 CXL 内存

6.2 内存分层

CONFIG_MEMORY_TIER=y

内核自动将冷页面迁移到慢内存层 → 热页面保留在快内存。

6.3 DAX

mount -o dax /dev/pmem0 /mnt

CXL 持久内存直接 mmap → 绕过页缓存。

七、挑战

挑战 说明
延迟 远程内存 ~300ns vs 本地 ~100ns
一致性 多主机共享内存的一致性协议
故障 远程内存节点故障 → 页面丢失
安全 共享内存的隔离和加密

八、应用场景

  • 数据库:冷数据放 CXL 内存 → 热数据放本地 DRAM
  • 机器学习:模型参数放共享内存池
  • 虚拟化:VM 内存超卖 + CXL 后备
  • 缓存:Memcached/Redis 使用远程内存

九、未来方向

  • CXL 3.0 内存池 → 数据中心级内存管理
  • OS 需要新的内存放置策略
  • 可能需要分布式 VMM
  • 与机密计算结合 → CXL 加密内存

十、小结

  • 资源解耦打破了 OS 对本地资源的假设
  • CXL 让远程内存可以 load/store 访问
  • LegoOS 是分离式 OS 的学术原型
  • Linux 通过 NUMA 扩展和内存分层适配
  • 延迟、一致性、故障是核心挑战

参考文献

  • Shan et al., “LegoOS: A Disseminated, Distributed OS for Hardware Resource Disaggregation.” OSDI 2018
  • CXL Consortium specification
  • Google, “Software-Defined Far Memory in Warehouse-Scale Computers.” ASPLOS 2019
  • Documentation/mm/memory-tiers.rst

工具

  • numactl
  • cxl-cli
  • daxctl

上一篇机密计算 下一篇OS 的下一个十年

同主题继续阅读

把当前热点继续串成多页阅读,而不是停在单篇消费。

2026-07-10 · os

【操作系统百科】OS 的下一个十年

下一代 OS 应为 AI workload、异构计算、CXL、内核旁路做什么?加速器主导的调度、sched_ext + ML、分离执行、OS 与 runtime 的重新分工——以工程案例收束全系列。

2026-04-30 · os

【操作系统百科】NUMA 内存

多路服务器里内存不再平等——本地访问和远程访问延迟差 2-3 倍。本文讲 NUMA 拓扑、mempolicy、AutoNUMA、NUMA balancing、CXL 带来的分级内存层次,以及 NUMA 感知的生产调优。

2026-04-27 · os

【操作系统百科】内存回收

Linux 内存回收是 VM 最复杂的子系统之一。本文讲 active/inactive LRU、kswapd 与 direct reclaim、watermark 三线、swappiness 的真实含义、MGLRU 改造、memcg 回收与 PSI。

2026-04-28 · os

【操作系统百科】交换

swap 还值得开吗?本文讲 swap area 基础、swap cache、zram 压缩内存、zswap 前端压缩池、swappiness 的真实含义、容器里的 swap 策略,以及为什么现代 Android 全靠 zram 不靠磁盘。