当前位置:首页 > 文章列表 > 文章 > linux > Linux /proc/pressure/memory 的 some 和 full 如何解读

Linux /proc/pressure/memory 的 some 和 full 如何解读

来源:17golang原创 2026-09-14 23:35:02 0浏览 收藏

看到 /proc/pressure/memory 里的 somefull,先记住一个结论:它们不是“内存用了多少”的百分比,而是任务因为内存资源得不到及时服务而停顿的时间占比。some 说明至少有一个任务在等,系统可能仍有其他任务继续工作;full 说明所有非空闲任务同时在等,CPU 没有多少有用进展,持续出现时更接近抖动或 thrashing。

排查时先看 avg10 判断刚刚发生了什么,再用 avg60avg300 判断是不是趋势,最后结合 total 捕捉均值掩盖的短时毛刺。
要点速览
  • some 是至少一个任务停顿,full 是所有非空闲任务同时停顿。
  • avg10/60/300 是最近三个窗口的停顿比例,不能直接当内存利用率。
  • 系统值异常时,还要下沉到 cgroup 的 memory.pressure,把压力归属到具体工作负载。
Linux 内核从 4.18 版本开始新增的 PSI 压力监控子系统,把内存资源的阻塞状态拆成了 `some` 和 `full` 两个维度统计,两个字段分别对应不同的观测场景,不用混为一谈解读。
`some` 指的是过去指定时长内,至少有一个进程因为等待内存相关资源(缺页、swap 读写、内存回收)处于不可运行状态的占比;`full` 指的是过去指定时长内,所有当前可运行的进程都在等待内存资源,完全没有进程能实际执行的时间占比。

为什么同一份内存压力要分 some 和 full

在高并发主机上,内存紧张不一定一开始就表现为 OOM。内核可能先回收页、等待内存分配、进行换页,部分任务因此暂时停住,但仍有别的任务占用 CPU。这就是 some 有值而 full 接近零的典型含义:系统已经有等待成本,但还没有完全失去生产能力。

fullsome 中更严重的重叠部分。只要所有非空闲任务都在同一时段等待内存,CPU 周期就没有转化为有效业务进展。它不是“内存快满了”的直接读数,而是“当前工作集因内存争用一起卡住了”的信号,因此比单看 MemAvailable 更接近用户感知的停顿。

memory PSI 的 some 与 full 关系示意图
图1:memory PSI 的 some 与 full 关系示意图,展示部分任务等待和全部非空闲任务同时等待的区别。这是原创操作示意图,不是真实截图。

先按字段读懂 /proc/pressure/memory

可以先用下面的命令读取系统级 PSI。命令只读取内核导出的接口,不会改变监控配置。

# 查看系统级内存压力停顿信息
cat /proc/pressure/memory

常见输出有两行,每行包含 avg10avg60avg300total。三个 avg 表示最近 10 秒、60 秒、300 秒窗口内的停顿时间比例;total 是从统计开始累计的微秒数。比如 some avg10=2.50 的意思是最近 10 秒里,累计约 2.5% 的时间存在至少一个任务因内存压力停顿,不是说 2.5% 的内存被占用。

读数时要成对看:some 高、full 低,优先检查回收、分配延迟和换页是否增加;两者都高,说明工作负载的等待已经重叠到整体无进展,应该继续查谁在制造内存竞争,以及是否需要限流、降载或调整工作集。

结合 avg10、avg60、avg300 和 total 定位

时间窗口对应三种判断。avg10 突然升高而 avg60avg300 仍低,通常是刚发生的批处理、缓存抖动或瞬时分配峰值;三个窗口一起抬升,才更像持续性压力。若平均值都很小但业务偶尔卡顿,比较两次采样的 total 增量,因为短而尖的压力事件不一定改变长窗口平均值。

不要只取一次快照就下结论。把 PSI 与 vmstat、swap 活动、应用延迟和容器工作负载时间对齐,才能分清是内存回收导致的等待,还是业务自身在同一时间发生了慢请求。这里 PSI 给的是“等待代价”,不是唯一根因。

从 PSI 字段到排查结论的结果示意图
图2:从 PSI 字段到排查结论的结果示意图,强调 avg10、avg60、avg300 与 total 的不同用途。这是原创结果示意图,不是真实运行结果。

从系统全局走到 cgroup 和告警

系统级文件回答“整台机器有没有内存等待”,但容器平台或多租户主机还要定位“哪个工作负载在等待”。启用 cgroup v2 后,可以在对应层级读取 memory.pressure,用相同的 some/full 口径比较服务、批任务和后台缓存,避免把全局现象错误归咎于前台请求。

需要提前动作时,官方 PSI 接口还支持在打开的文件描述符上注册阈值,例如 some 150000 1000000 表示 1 秒窗口内累计 150 毫秒的部分停顿后唤醒监控程序。生产环境应让独立 fd 对应独立触发器,并处理 pollepoll 返回错误以及 fd 关闭后的注销行为。阈值不是通用真理,要用历史延迟和业务 SLO 校准。

常见误区与快速判断

问:full 为 0,是否说明内存完全正常? 不一定。它只说明没有出现“所有非空闲任务同时因内存停顿”的重叠区间,some 仍可能持续升高,业务延迟也可能已经受影响。

问:some 很高就等于快 OOM 了吗? 也不能直接等同。PSI 记录的是停顿时间,根因可能是回收、换页、分配争用或工作集突增。要结合内存可用量、swap、回收活动和具体 cgroup 再判断。

把 PSI 当作“系统进展速度”的观测面,而不是容量仪表盘,才能正确使用 somefull 和三个时间窗口:先识别压力是否存在,再确认是否重叠到整体停顿,最后把处理动作落到具体工作负载。

版本声明
本文转载于:17golang原创 如有侵犯,请联系study_golang@163.com删除
Go math/big.Int.QuoRem 处理负数商和余数时怎么验算Go math/big.Int.QuoRem 处理负数商和余数时怎么验算
上一篇
Go math/big.Int.QuoRem 处理负数商和余数时怎么验算
SkildArt适合哪些跨境电商素材任务?先做与慎用场景判断清单
下一篇
SkildArt适合哪些跨境电商素材任务?先做与慎用场景判断清单
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    543次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    516次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    500次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    485次学习
查看更多
AI推荐
  • PubMedQA数据集详解:生物医学问答基准、功能与应用指南
    PubMedQA
    深入了解PubMedQA生物医学问答数据集,涵盖其核心功能、使用方法及在临床决策、药物研发等场景的应用,助力提升NLP模型性能。
    26次使用
  • H2O EvalGPT:开源LLM大模型评估与排行榜工具
    H2O EvalGPT
    H2O EvalGPT是H2O.ai推出的开源LLM评估平台,提供详细的大模型性能排行榜、行业特定基准测试及A/B测试功能,助您快速选择最适合项目的高性能大语言模型。
    130次使用
  • LMArena是什么?伯克利AI模型评估平台使用指南与功能解析
    LMArena
    LMArena是加州大学伯克利分校推出的AI模型匿名评测平台。通过盲测投票机制,用户可对比不同大模型回答并生成实时排行榜,助力开发者优化模型及用户选择最佳AI工具。
    62次使用
  • 斯坦福HELM:大语言模型Holistic Evaluation整体评估框架详解
    HELM
    深入了解斯坦福推出的HELM(Holistic Evaluation of Language Models)大模型评测体系。本文解析其核心功能、安装配置步骤及应用场景,涵盖准确性、公平性、鲁棒性等多维度指标,助力开发者全面优化语言模型性能。
    23次使用
  • OpenCompass大模型评测体系详解:功能、使用指南与应用场景
    OpenCompass
    OpenCompass是上海AI实验室推出的开源大模型评测平台,提供CompassKit、CompassHub和CompassRank三大核心组件,支持LLM及多模态模型的一站式标准化评估与排行榜查询。
    81次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码