当银河麒麟系统响应变慢、应用卡顿或提示“内存不足”时,需依次用free查available余量、top按%MEM排序、ps输出前10高内存进程、htop可视化分析、smaps精查PSS与Swap。

当银河麒麟系统响应变慢、应用频繁卡顿或提示“内存不足”时,需立即确认物理内存是否被过度占用,避免因OOM Killer强制终止关键进程导致服务中断。
用free命令快速查看内存总体状态
1、打开终端,执行:free -h。
2、重点看【available】列数值——这是内核估算的、可立即分配给新进程的物理内存,比free列更真实反映可用余量。
3、若available值低于总内存的10%,且buff/cache占比极高(如超60%),说明系统正依赖页缓存维持性能,但新进程可能面临内存分配失败风险。
用top命令动态排序查看高内存进程
1、终端输入top并回车。
2、按下Shift + M按键,进程列表即按%MEM列降序重排。
3、观察顶部%Cpu(s)行与KiB Mem行:若id(空闲)持续低于10%,同时%MEM最高进程长期>30%,需优先检查该进程是否异常驻留或泄漏。
4、按q退出。
用ps命令一次性输出内存占用前10进程
方法一:静态快照(含表头)
1、执行:ps -eo pid,%mem,comm --sort=-%mem | head -n 11。
2、输出第1行为PID、%MEM、COMMAND,后10行为实际进程,%MEM精度保留一位小数。
方法二:仅进程名+RSS大小(适合排查大内存块)
1、执行:ps -eo comm,rss --sort=-rss | head -n 11。
2、RSS单位为KB,数值越大表示该进程独占物理内存越多;注意某些Java服务RSS虚高但实际压力不大,需结合PSS进一步判断。
用htop查看彩色可视化内存排行
1、若未安装,先运行:sudo apt install htop。
2、启动后按F6→选择PERCENT_MEM→回车。
3、右侧内存条形图长度直观对应%MEM值,光标选中进程后按s可查看其/proc/[PID]/status详细内存字段。
【注意】htop默认不显示线程,如需包含线程级内存统计,启动时加-H参数:htop -H。
用smaps精确分析单进程内存构成
第一步:获取目标进程PID
1、例如查nginx主进程:pgrep -f "nginx: master",记下返回的数字。
第二步:提取关键内存指标
1、执行:cat /proc/[PID]/smaps | grep -E "^(Pss|RSS|Swap):"(将[PID]替换为上一步得到的实际数字)。
2、PSS值(Proportional Set Size)最能反映该进程对系统内存的真实压力——它按共享内存比例分摊计算,比RSS更公平。
3、若某进程Swap值持续非零,说明其部分内存已被换出到磁盘,是物理内存严重不足的明确信号。











