tencent cloud

云服务器

动态与公告
产品动态
公共镜像更新动态
操作系统官方停止维护计划
产品公告
产品简介
云服务器概述
产品优势
基本概念
地域和可用区
新手指引
Service Regions and Service Providers
产品计费
计费概述
计费方式
计费项
转换计费方式
购买实例
变配费用说明
欠费说明
快速入门
通过自定义配置购买 Linux 云服务器
通过自定义配置购买 Windows 云服务器
用户指南
操作指南总览
使用限制总览
实例
竞价实例
预留实例
镜像
存储
备份与恢复
网络
安全
密码/密钥
监控与告警
运维管理
便捷功能
迁移服务器
在线迁移
迁移咨询
故障处理
无法登录云服务器问题处理思路
Windows 实例登录相关故障
Linux 实例登录相关故障
其他实例登录相关故障
实例运行故障
Linux 实例内存故障
网络故障
实践教程
云服务器选型建议
搭建环境
搭建网站
搭建应用
搭建可视化界面
本地文件上传到云服务器
网络性能测试
其他实践教程
API 文档
History
Introduction
API Category
Making API Requests
Region APIs
Instance APIs
Cloud Hosting Cluster APIs
Image APIs
Instance Launch Template APIs
Placement Group APIs
Key APIs
Security Group APIs
Network APIs
Data Types
Error Codes
安全与合规
访问管理
网络
常见问题
地域和可用区相关
计费相关
实例相关
存储相关
镜像相关
服务器迁移相关
网络相关
安全相关
操作系统相关
运维和监控相关
访问管理相关
NTP 服务相关
应用场景相关
服务协议
CVM Service Level Agreements
Red Hat Enterprise Linux 镜像服务协议
Public IP Service Level Agreement
词汇表
文档云服务器故障处理Linux 实例内存故障Linux 实例:内存使用率过高

Linux 实例:内存使用率过高

PDF
聚焦模式
字号
最后更新时间: 2025-08-25 16:25:25

现象描述

Linux 云服务器实例出现由内存问题引发的故障。例如,系统内部服务响应速度变慢、服务器登录不上、系统触发 OOM(Out Of Memory)等。

可能原因

可能是实例内存使用率过高等问题引起。通常情况下当实例内存使用率持续高于90%时,可判断为实例内存使用率过高。

排查思路

1. 参见 处理步骤,判断问题是否由内存使用率过高引起。
2. 参见 其他内存问题典型案例分析,定位问题原因。

处理步骤

1. 参见 相关操作,查看内存使用率是否过高。
内存使用率过高,则执行下一步。
内存使用率正常,则请参见 其他内存问题典型案例分析,进一步定位问题原因。
2. 在系统内部执行 top 命令后按 M,查看 “RES” 及 “SHR” 列是否有进程占用内存过高。
否,则执行下一步。
是,则对应进程类型进行操作,详情请参见 分析进程
3. 执行以下命令,查看共享内存占用是否过高。
cat /proc/meminfo | grep -i shmem
返回结果如下图所示:


4. 执行如下命令,查看不可回收的 slab 内存占用是否过高。
cat /proc/meminfo | grep -i SUnreclaim
返回结果如下图所示:


5. 执行以下命令,查看是否存在内存大页。
cat /proc/meminfo | grep -iE "HugePages_Total|Hugepagesize"
返回结果如下图所示:


HugePages_Total 输出为0,则请参见 其他内存问题典型案例分析,进一步定位问题原因。
HugePages_Total 输出非0,则表示配置了内存大页。内存大页的大小为 HugePages_Total*Hugepagesize, 您需确认 hugepage 是否为其他恶意程序配置。若确认已不需要内存大页,可通过注释 /etc/sysctl.conf 文件中的 vm.nr_hugepage 配置项,再执行 sysctl -p 命令取消内存大页。

相关操作

查看内存使用率

由于不同 Linux 发行版的 free 命令输出的含义可能有区别,内存使用率不能通过简单的 free 命令输出信息进行计算得出。请按照以下步骤,通过腾讯云内存监控得到内存使用率:
1. 登录 云服务器控制台,进入实例管理页面。
2. 选择实例 ID,进入实例详情页面,并选择监控页签。
3. 内存监控中可查看该实例的内存利用率。如下图所示:



计算内存使用率

内存监控中内存使用率计算方法为:用户使用的内存量与总内存量之比,不包括缓冲区与系统缓存占用的内容。计算过程如下: = (Total - available)100% / Total = (Total - (Free + Buffers + Cached + SReclaimable - Shmem))100% /Total = (Total - Free - Buffers - Cached - SReclaimable + Shmem)* 100% / Total
计算过程中使用的 TotalFreeBufferCachedSReclaimableShmem 参数可从 /proc/meminfo 中获取。/proc/meminfo 示例如下:
1. [root@VM_0_113_centos test]# cat /proc/meminfo
2. MemTotal: 16265592 kB
3. MemFree: 1880084 kB
4. ......
5. Buffers: 194384 kB
6. Cached: 13647556 kB
7. ......
8. Shmem: 7727752 kB
9. Slab: 328864 kB
10. SReclaimable: 306500 kB
11. SUnreclaim: 22364 kB
12. ......
13. HugePages_Total: 0
14. Hugepagesize: 2048 kB
参数说明如下:
参数
说明
MemTotal
系统总内存。
MemFree
系统剩余内存。
Buffers
表示块设备(block device)所占用的缓存页,包括直接读写块设备,以及文件系统元数据(metadata),例如 SuperBlock 所使用的缓存页。
Cached
page cache,包含 tmpfs 中的文件 POSIX/SysV shared memoryshared anonymous mmap
Shmem
包括共享内存,tmpfs 等。
Slab
内核 slab 分配器分配的内存,可以用 slabtop 查看。
SReclaimable
可回收的 slab。
SUnreclaim
不可回收的 slab。
HugePages_Total
内存大页总共的页数。
Hugepagesize
内存大页一页的大小。

其他内存问题典型案例分析

如通过以上步骤均无法处理问题,或您使用云服务器时出现以下类型的错误信息,则可以参考以下解决方案:

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈