[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fHgT9xCZC57q_xFcMP0L-lwVWk37TRjfCjwIX-dH7T7Y":3},{"item":4,"related":44},{"id":5,"type":6,"title":7,"slug":8,"summary":9,"body":10,"coverUrl":11,"productScreenshots":12,"productLinks":13,"authorName":14,"authorUrl":15,"authorSubject":16,"category":17,"tags":22,"sourceLabel":35,"sourceName":36,"sourceUrl":37,"status":38,"seoTitle":7,"seoDescription":9,"canonicalUrl":35,"isFeatured":39,"sno":40,"sortOrder":41,"publishedAt":42,"updatedAt":43,"createdAt":43},"ac208c3d-b268-4447-bd95-0ca654e81532","article","DAMON：操作系统怎样低成本找出“很少被访问”的内存？","damon-linux-memory-access-monitor","DAMON 通过抽样观察内存访问模式，帮助 Linux 识别冷热区域，再由 DAMOS 等策略决定如何管理。本文解释抽样的价值与误差，以及为什么监测本身不是自动提升性能的按钮。","服务器内存看起来像一大片整齐的地址空间，但程序对它的使用往往很不均匀：一小部分数据被反复读取，另一部分则很久没人碰。若操作系统能及时看出哪些区域“热”、哪些区域“冷”，就可能更聪明地安排回收、迁移或压缩。但逐次追踪每一次内存访问本身也要花资源，监控不能比被监控对象还忙。\n\nDAMON 是 Linux 内核里的 Data Access MONitor（数据访问监视器）。它用抽样的方式观察进程或物理内存区域的访问情况，而不是为每一次读写都建立完整日志。它会在选定时间间隔检查部分地址，估算一段时间内哪些区域被访问得较频繁，并把相邻、热度相近的区域合并成更大的范围。这样既能获得内存访问模式的概览，也尽量控制监测开销。\n\n抽样意味着它给出的是估计，不是逐字逐句的访问审计。假设某个很短暂的访问恰好没有落在采样时刻，监视器就可能错过；采样太稀疏，细节会变少，采样太密集，又会增加开销。DAMON 允许根据目标调整监测区域、时间间隔与粒度，这是一种工程折中：用有限成本换取对访问热点的足够了解。\n\n监测只是第一步。DAMON 生态里还有 DAMOS（DAMON-based Operation Schemes），可依据热度和其他条件触发操作，例如尝试回收长期不活跃的页面，或对冷数据采用更合适的管理策略。把观察与策略分开很有用：同一套访问数据可以服务于不同的内存管理目标，而操作规则也能按系统用途调整。\n\n直观地说，DAMON 像是管理员每隔一会儿巡查仓库几个货架，记录哪些货架最近经常有人取货，再把使用情况相似的货架合并成区域。它不是门口的全程录像，因此不能回答“某个进程在某一纳秒访问了哪个地址”；它更适合支持趋势判断和策略决策。\n\n这类监测在内存压力较大的服务器、虚拟化环境以及希望按冷热程度管理数据的场景中尤其有价值。但具体收益取决于负载：一个访问模式变化很快的应用，可能让旧的热点统计迅速过时；错误的回收策略也可能把很快又要用的数据提前赶走。因此，DAMON 提供的是观测基础，不是自动保证性能提升的按钮。应用前仍应测量开销、检查策略，并在真实工作负载中验证结果。\n\n来源：[Linux 内核文档：DAMON Design](https:\u002F\u002Fdocs.kernel.org\u002Fmm\u002Fdamon\u002Fdesign.html)","\u002Fuploads\u002F2026-10-13\u002Fce584d3c-871f-4868-8eb1-f03147106c74.jpg",[],[],"Foundit","https:\u002F\u002Ffoundit.cn","foundit-ai-editorial",{"id":18,"name":19,"slug":20,"description":21},"6179d3b6-dc34-4483-9ded-3cd9f1b37a47","科普","abbreviation","介绍各领域新兴概念",[23,27,31],{"id":24,"name":25,"slug":26},"7c76bfc2-f80f-4ee0-a95d-27bd8708b434","技术","slug",{"id":28,"name":29,"slug":30},"8d35e42e-9f5b-4dd9-b30f-dc2c53d06096","硬件","hardware",{"id":32,"name":33,"slug":34},"4c2bbea6-eab7-40a8-8447-1de478ff7749","分析","analyse",null,"Linux Kernel Documentation","https:\u002F\u002Fdocs.kernel.org\u002Fmm\u002Fdamon\u002Fdesign.html","published",false,57,0,"2026-10-13T00:00:00.000Z","2026-10-13T02:13:31.312Z",[45,53,62],{"id":46,"type":6,"title":47,"slug":48,"summary":49,"coverUrl":50,"authorName":14,"sno":51,"publishedAt":42,"createdAt":52},"d4a1ef13-fa42-41f3-a9d2-635f47d801d0","RISC-V PMP：处理器怎样给不同特权级划出内存禁区？","riscv-pmp-physical-memory-protection","RISC-V PMP 由高特权级软件配置物理内存区域访问规则，并由处理器在较低权限代码访问时执行检查。本文区分 PMP 与虚拟内存，介绍它在固件和嵌入式安全中的作用及实现边界。","\u002Fuploads\u002F2026-10-13\u002Fecfdd306-c8d2-4bfa-984e-7f579fd86f61.jpg",41,"2026-10-13T02:13:39.212Z",{"id":54,"type":6,"title":55,"slug":56,"summary":57,"coverUrl":58,"authorName":14,"sno":59,"publishedAt":60,"createdAt":61},"56b94746-1551-4111-a1e9-6dc7e62e1604","RDMA：两台机器能否让网卡直接搬运注册内存？","rdma-registered-memory-and-remote-access","RDMA 让网卡在授权和注册内存范围内处理远端数据搬运。本文解释内存注册、访问权限与完成队列，避免把它误解为完全没有 CPU 参与。","\u002Fuploads\u002F2026-10-06\u002F86d526f9-9a46-46aa-8c81-1efd4aae1284.jpg",49,"2026-10-06T00:00:00.000Z","2026-10-06T07:51:32.204Z",{"id":63,"type":6,"title":64,"slug":65,"summary":66,"coverUrl":67,"authorName":14,"sno":68,"publishedAt":69,"createdAt":70},"67ba2085-7ee6-4379-9d0c-6372fed783ae","Intel TDX：云服务器管理员也看不到虚拟机里的数据吗？","intel-tdx-confidential-vm-explained","Intel TDX 通过处理器支持的隔离机制，将虚拟机运行环境划成受保护的 Trust Domain，降低宿主软件直接读取或篡改其内存的机会。本文说明机密计算解决什么信任问题，也谈远程证明、侧信道和来宾系统自身的风险。","\u002Fuploads\u002F2026-10-17\u002Ff8891699-ca7f-4edb-b64d-1b4db6421b0e.jpg",50,"2026-10-17T00:00:00.000Z","2026-10-17T03:08:39.718Z"]