top
命令后按 M,查看 “RES” 及 “SHR” 列是否有进程占用内存过高。cat /proc/meminfo | grep -i shmem
cat /proc/meminfo | grep -i SUnreclaim
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
命令取消内存大页。free
命令输出的含义可能有区别,内存使用率不能通过简单的 free
命令输出信息进行计算得出。请按照以下步骤,通过腾讯云内存监控得到内存使用率:(Total - available)100% / Total
= (Total - (Free + Buffers + Cached + SReclaimable - Shmem))100% /Total
= (Total - Free - Buffers - Cached - SReclaimable + Shmem)* 100% / Total
Total
、Free
、Buffer
、Cached
、SReclaimable
、Shmem
参数可从 /proc/meminfo
中获取。/proc/meminfo
示例如下:1. [root@VM_0_113_centos test]# cat /proc/meminfo2. MemTotal: 16265592 kB3. MemFree: 1880084 kB4. ......5. Buffers: 194384 kB6. Cached: 13647556 kB7. ......8. Shmem: 7727752 kB9. Slab: 328864 kB10. SReclaimable: 306500 kB11. SUnreclaim: 22364 kB12. ......13. HugePages_Total: 014. Hugepagesize: 2048 kB
参数 | 说明 |
MemTotal | 系统总内存。 |
MemFree | 系统剩余内存。 |
Buffers | 表示块设备(block device)所占用的缓存页,包括直接读写块设备,以及文件系统元数据(metadata),例如 SuperBlock 所使用的缓存页。 |
Cached | page cache,包含 tmpfs 中的文件 POSIX/SysV shared memory 及 shared anonymous mmap。 |
Shmem | 包括共享内存,tmpfs 等。 |
Slab | 内核 slab 分配器分配的内存,可以用 slabtop 查看。 |
SReclaimable | 可回收的 slab。 |
SUnreclaim | 不可回收的 slab。 |
HugePages_Total | 内存大页总共的页数。 |
Hugepagesize | 内存大页一页的大小。 |
本页内容是否解决了您的问题?