讲师中心 微信公众号
AI工具推荐 视频效率加速

Linux内存占用异常怎么分析_进程级排查方法【技巧】

云辰大大_2815

云辰大大_2815

发布时间:2025-12-19 20:04:02

|

1095人浏览过

|

来源于php中文网

原创

快速定位高内存进程应先用htop或top按内存排序查看RES和%MEM,再用ps命令抓取前10名;深入分析需检查/proc/PID/status、pmap和smaps;注意区分真实占用与缓存,结合free、vmstat、smem和slabtop综合判断,并通过watch、日志采样及专用工具验证趋势与泄漏。

linux内存占用异常怎么分析_进程级排查方法【技巧】

快速定位高内存进程

先用交互式工具一眼看出谁在“吃”内存。运行 htop(如未安装,sudo apt install htop 或 sudo dnf install htop),默认就按内存从高到低排序,RES 列代表实际占用的物理内存,%MEM 是占比,比对两者更准——有些进程 RES 高但 %MEM 低,可能是系统总内存大、单个进程占比不显眼。

若只能用基础环境,top 同样有效:启动后按 Shift + M(大写 M)切换至内存排序;再按 u 可筛选指定用户,k 可杀进程(务必确认后再操作)。

非交互场景下,用 ps 一键抓取前 10 名:

  • ps aux --sort=-%mem | head -n 10 —— 看整体内存占比排名
  • ps -eo pid,comm,%mem,rss,vsize --sort=-rss | head -n 10 —— 更关注实际物理内存(RSS)占用

深入看单个进程的内存构成

找到可疑 PID 后,别只盯 RSS。Linux 进程内存分得很细,关键要看它到底用了什么类型的内存:

  • cat /proc/<pid>/status | grep -i "vm\|rss\|anon\|file"</pid> 重点关注:VmRSS(等同 RES)、RssAnon(堆/栈等匿名内存)、RssFile(共享库、mmap 文件等)
  • pmap -x <pid></pid> —— 显示每段内存的大小、权限和映射来源,能快速识别是否某块 mmap 区域异常膨胀
  • cat /proc/<pid>/smaps | awk '/^Size:/ {sum+=$2} END {print sum}'</pid> —— 统计该进程总虚拟内存(KB),辅助判断是否地址空间失控

特别注意:如果 RssAnon 远高于 RssFile,且持续增长,大概率是堆内存泄漏;如果 RssFile 占比极高,可能是缓存了大量文件或共享库加载异常。

cn-json-diff
cn-json-diff

比较两个 JSON 文件并显示差异。支持嵌套结构、数组及值变更。纯 Python 标准库实现,无需 API 密钥。

下载

区分“真占”和“假高”:缓存、共享与可回收性

看到 free -h 显示 used 很高,别急着杀进程。Linux 会把空闲内存自动用于 buff/cache,这部分在应用需要时会立即释放:

  • free -h 中重点看 available 值——这才是真正可分配给新进程的内存
  • 若 available 很低,再查 vmstat 1 5:持续出现 si > 0(swap in)或 so > 0(swap out),说明物理内存已严重不足,开始频繁换页
  • 共享内存(SHR)在 top/htop 中会重复计算,用 smem 更准:smem -s rss -r | head -n 10 显示 PSS(按比例分摊后的实际开销)

另外,slab 缓存(尤其是不可回收的 dentry/inode)也可能悄悄吃掉大量内存:slabtop -o | head -n 20 查看 top 占用 slab 的对象。

辅助验证与长期观察

单次快照容易误判,建议结合时间维度确认趋势:

  • 用 watch -n 2 'free -h' 每 2 秒刷新一次,观察 available 是否持续下降
  • 记录一段时间内 top 内存进程变化:top -b -n 3 -d 5 | grep -A 10 "%MEM" > mem.log(采样 3 次,间隔 5 秒)
  • 怀疑内存泄漏又无法停服务?可用 valgrind --tool=memcheck --leak-check=full --log-file=valgrind.log ./your_program 在测试环境复现(生产慎用)

对于 Java、Node.js 等运行时环境,还需结合其自身工具:jstat、jmap 或 process.memoryUsage(),不能只依赖系统层指标。

热门AI工具

更多
Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

花生AI
花生AI Hot

一款AI视频创作工具,主要用于B站推出的AI视频创作工具,适合需要提升相关任务效率的用户。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

相关专题

更多
python中print函数的用法
python中print函数的用法

python中print函数的语法是“print(value1, value2, ..., sep=' ', end=' ', file=sys.stdout, flush=False)”。本专题为大家提供print相关的文章、下载、课程内容,供大家免费下载体验。

3280

2023.09.27

python print用法与作用
python print用法与作用

本专题整合了python print的用法、作用、函数功能相关内容,阅读专题下面的文章了解更多详细教程。

269

2026.02.03

sort排序函数用法
sort排序函数用法

sort排序函数的用法:1、对列表进行排序,默认情况下,sort函数按升序排序,因此最终输出的结果是按从小到大的顺序排列的;2、对元组进行排序,默认情况下,sort函数按元素的大小进行排序,因此最终输出的结果是按从小到大的顺序排列的;3、对字典进行排序,由于字典是无序的,因此排序后的结果仍然是原来的字典,使用一个lambda表达式作为key参数的值,用于指定排序的依据。

1158

2023.09.04

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

6607

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

2748

2023.08.10

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

6607

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

2748

2023.08.10

js正则表达式
js正则表达式

php中文网为大家提供各种js正则表达式语法大全以及各种js正则表达式使用的方法,还有更多js正则表达式的相关文章、相关下载、相关课程,供大家免费下载体验。

4796

2023.06.20

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

0

2026.11.05

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn