内存管理-31-内存相关文件节点-进程-1-clear_refs
一、简介
Linux 系统中的 /proc/<pid>/clear_refs 是一个只写(Write-only)的虚拟文件节点(需要 CONFIG_PROC_PAGE_MONITOR 内核配置选项支持),用于重置或清除指定进程(<pid>)相关内存页的特定状态位(如引用位、脏页位等)。
向该文件写入不同的数值,可以实现不同的内存监控与管理功能:
1:重置该进程所有关联内存页的 PG_Referenced 和 ACCESSED / YOUNG 位。
2:仅重置该进程所有匿名内存页(Anonymous pages)的 PG_Referenced 和 ACCESSED / YOUNG 位。
3:仅重置该进程所有文件映射页(File-mapped pages)的 PG_Referenced 和 ACCESSED / YOUNG 位。
典型用途:结合 /proc/<pid>/smaps 中的 Referenced 字段,可以用来测量一个进程在一段时间内实际使用了多少内存(先向 clear_refs 写值清零,等待一段时间后读取 smaps 查看哪些页再次被访问过)。
但实测这两个打印出来的行数是一样的:
P=/proc/8069; cat $P/smaps | wc -l P=/proc/8069; echo 0 > $P/clear_refs; cat $P/smaps | wc -l
4:清除该进程页表项(PTE)上的 soft-dirty(软件脏页) 位。
典型用途:常与 /proc/<pid>/pagemap 配合使用,用于检查或追踪进程自某次清理以来,哪些内存页被修改(写脏)过,常见于内存增量备份、热迁移或容器/虚拟机的 Checkpoint-Restore(CRIU)机制。
5:将该进程的峰值常驻内存集大小(Peak Resident Set Size, “高水位标记”/High Water Mark)重置为该进程当前的常驻内存大小(RSS 值,从 Linux 4.0 开始支持)。
参考资料:
https://docs.kernel.org/filesystems/proc.html
https://blog.spoock.com/2019/10/08/proc/
posted on 2026-10-09 11:08 Hello-World3 阅读(3) 评论(0) 收藏 举报
浙公网安备 33010602011771号