网站首页 > linux / 正文
简介
内存 ( memory )是操作系统管理的一项重要指标,对内存使用量进行监控,有助于提前发现内存问题,避免因内存耗尽而造成的故障。
如果出现内存快被耗尽,一般会出现 OOM 的现象。
命令查看
使用 free 命令查看
free
total used free shared buff/cache available
Mem: 16045460 2493184 10043920 568668 3508356 12683216
Swap: 0
查看统计
free -t
free -t
total used free shared buff/cache available
Mem: 16189224 3981536 7458680 1902204 4749008 10029104
Swap: 0 0 0
Total: 16189224 3981536 7458680
默认是使用 byte 位单位,也可以使用 -k 或 -m 或 -g 来切换值单位
详细指标
Linux 内核负责统计内存使用量并暴露在 /proc 伪文件系统中,路径是 /proc/meminfo 。一般而言,需要重点关注的指标如下: 内存使用量指标(字节):
total 物理内存总量
free 空闲内存(未使用)
buffers 内核缓冲区
cached 文件缓冲页
slab 内核 slab 数据结构
cache cached 以及 slab 之和
g_free 广义空闲内存
used 已使用内存
active 活跃内存
inactive 非活跃内存
available 可用内存
total
total 表示 物理内存总量 ,单位为 字节 ,对应 /proc/meminfo 的 MemTotal 字段。
free
free 表示 空闲内存量 ,单位为 字节 , 对应 /proc/meminfo 的 MemFree 字段。
buffers
buffers 表示 内核缓冲区 ,单位为 字节 ,对应 /proc/meminfo 的 Buffers 字段。
cached
cached 表示 文件缓冲页 ,单位为 字节 ,对应 /proc/meminfo 的 Cached 字段。
slab
slab 表示 内核 slab 数据结构 ,单位为 字节 ,对应 /proc/meminfo 的 Slab 字段。
cache
cache 与 free 命令中的 cache 相同,即 cached 以及 slab 之和:
cache = cached + slab
g_free
g_free 表示 广义空闲内存 ( generalized free ),单位为 字节 ,计算方式如下:
g_free = free + buffers + cache
buffers 和 cache 是系统为了提升性能而使用的缓存,内存紧张时可随时回收另做它用。因此,这部分内存在某种意义上可以认为是空闲的,这就是 广义空闲内存 的由来。
used
used 表示 已用内存 ,单位为 字节 ,计算方式如下:
used = total - g_free = total - free - buffers - cache
active
active 表示 活跃内存 ,单位为 字节 ,对应 /proc/meminfo 的 Active 字段。
活跃内存 是指最近经常访问的内存,通常不会被重新分配,除非非常必要。
inactive
inactive 表示 非活跃内存 ,单位为 字节 ,对应 /proc/meminfo 的 Inactive 字段。
非活跃内存 是指最近较少访问的内存,需要新分配内存时,这部分优先选择。
available
从 3.14 内核版本开始提供在 /proc/meminfo 的 MemAvailable 字段,available 表示 可用内存 ,单位为 字节。
可用内存 指的是可用于启动一个新应用进程的内存,该指标是内核提供的一个估计值。它同样结合 free 以及 cache 两部分内存,但是考虑到 cache 因使用而不能释放的情况。因此,可以认为:
free <= available <= g_free
总结
在 CentOS 7 上基本都是看 available 来判断可用内存。
Tags:查看linux内存使用情况
猜你喜欢
- 2024-11-26 一口气搞懂「Linux内存管理」,就靠这60张图、59个问题了
- 2024-11-26 在 Linux 中按最高内存和 CPU 使用率查找运行最频繁的进程
- 2024-11-26 分享一个实用脚本--一键获取linux内存、cpu、磁盘IO等信息
- 2024-11-26 Linux内存泄露案例分析和内存管理分享
- 2024-11-26 linux内存指标
- 2024-11-26 软件性能测试Linux内存监控free命令了解
- 2024-11-26 如何用脚本统计linux系统CPU、内存、磁盘IO等信息?
- 2024-11-26 超干货!Linux 内存管理知识总结(一)
- 2024-11-26 Linux内存占用过高?非也
- 2024-11-26 Linux下内存问题检测神器:Valgrind