文档章节

Linux必知必会-理解内存使用统计命令free

mylxsw
 mylxsw
发布于 2017/06/14 14:37
字数 864
阅读 31
收藏 1

DSC07274

[TOC]

本文详细介绍了Linux系统中的free命令的使用方法以及关键参数的含义,这可能是你见过的关于free命令最详细的一篇文章了,绝对值得你收藏。

free命令显示了Linux系统中物理内存、交换分区的使用统计信息。

指标说明

使用free命令查看内存信息,最重要的是理解当前系统的可用内存并不是直接看 free 字段就可以看出来的,应该参考的是

可用内存 = free + buffers + cached

除去标题行之后,第一行为 物理内存使用统计

标题 说明
total 物理内存总量 total = used + free
used 已使用内存总量,包含应用使用量+buffer+cached
free 空闲内存总量
shared 共享内存总量
buffers 块设备所占用的缓存
cached 普通文件数据所占用的缓存
available 当前可用内存总量(可用于分配给应用的,不包含虚拟内存)

对于available字段,在内核3.14中,它会从/proc/meminfo中的MemAvailable读取,在内核2.6.27+的系统上采用模拟的方式获取,其它情况下直接与free的值相同。

第二行**-/+ buffers/cache** 中只有两列usedfree有值,它们是物理内存的调整值

标题 说明
used 已使用内存(used)减去buffer和cached之后的内存,也就是应用正在使用的内存总量
free 空闲内存加上buffer和cached之后的内存,也就是真正的可用内存总量

第三行为交换分区使用统计

标题 说明
total 交换分区内存总量
used 正在使用的交换分区内存
free 空闲交换分区内存

在上面这些指标中,我们需要注意的是在下面这些情况下,系统是正常的,不需要担心

  • 空闲内存free接近于0
  • 已使用内存used接近于total
  • 可用内存(free+buffers/cache)占total的 20% 以上
  • 交换分区内存 swap 没有发生改变

下面情况说明内存过低,需要注意!

  • 可用内存(free+buffers/cache)过低,接近于0的时候
  • 交换分区内存占用swap used增加或者有波动
  • dmesg | grep oom-killer显示有OutOfMemory-killer正在运行

常用参数

选项 说明
-b/k/m/g 以bytes/kilobytes/megabytes/gigabytes为单位显示结果
-h 以人类可读的方式输出统计结果
-t 使用该选项会多显示一行标题为Total的统计信息
-o 禁止显示第二行的缓冲区调整值
-s 每隔多少秒自动刷新结果
-c 与**-s**配合使用,控制刷新结果次数
-l 显示高低内存的统计详情
-a 显示可用内存
-V 显示版本号

版本不同,可能部分选项也不相同。

参考示例

# free -t -a -g

本文将会持续修正和更新,最新内容请参考我的 GITHUB 上的 程序猿成长计划 项目,欢迎 Star,更多精彩内容请 follow me

参考文献

© 著作权归作者所有

mylxsw

mylxsw

粉丝 35
博文 24
码字总数 53847
作品 10
朝阳
程序员
私信 提问
Linux 中free命令检查内存使用情况

我们都知道, IT 基础设施方面的大多数服务器(包括世界顶级的超级计算机)都运行在 Linux 平台上,因为和其他操作系统相比, Linux 更加灵活。有的操作系统对于一些微乎其微的改动和补丁更新...

问题终结者
2018/07/06
49
0
PHPer 必知必会的 Linux 命令

PHPer 必知必会的 Linux 命令https://github.com/Nick233333/gitbook

-Nick-
2018/06/08
831
2
Android系统在超级终端下必会的命令大全(五)

系统管理命令df 作用:df命令用来检查文件系统的磁盘空间占用情况,使用权限是所有用户。 格式df [options] 主要参数 -s:对每个Names参数只给出占用的数据块总数。 -a:递归地显示指定目录...

补全
2012/06/20
456
0
Linux操作系统中内存buffer和cache的区别

我们一开始,先从Free命令说起。 free 命令相对于top 提供了更简洁的查看系统内存使用情况: $ free total used free shared buffers cached Mem: 255268 238332 16936 0 85540 126384 -/+ b...

晨曦之光
2012/03/09
214
0
每个Linux用户必知的省时技巧

我手头有几个小技巧,如果你要提高你在linux命令行下的工作效率,它们不失为一个好的选择。我要说的是,这几个鲜为人知的小技巧对于技术型用户是非常有用的。或许你觉得这个文章有点长,这并...

root_root
2013/01/10
1K
3

没有更多内容

加载失败,请刷新页面

加载更多

debian10使用putty配置交换机console口

前言:Linux的推广普及,需要配合解决实际应用方能有成效! 最近强迫自己用linux进行实际工作,过程很痛苦,还好通过网络一一解决,感谢各位无私网友博客的帮助! 系统:debian10 桌面:xfc...

W_Lu
29分钟前
9
0
aelf Enterprise 0.8.0 beta有奖公测,“Bug奖金计划”重磅开启

2019年9月30日,aelf Enterprise 0.8.0 beta版正式发布。aelf Enterprise 0.8.0 beta是一个完备的区块链系统, 包含完备的区块链系统、开发套件、开发文档、以及配套的基础应用和基础服务。 ...

AELF开发者社区
30分钟前
7
0
oracle 初始化数据库脚本

create user lpf identified by 123456; create tablespace lpf_ts_cms datafile '/opt/app/oracle/product/11.2.0/lpf.dbf' size 200M; alter user lpf default tablespace lpf_ts_cms; sel......

internetafei
35分钟前
5
0
《区块链DAPP开发入门、代码实现、场景应用》笔记1——天外飞仙DAPP

Solidity编程语言解决了编写智能合约的不友好的问题,但是当合约编译并部署之后,对与这些接口的访问,对于一般的使用者来说,门槛有点高, 对普通用户来说也是非常不友好,为了使广大用户理...

柯南和由美
39分钟前
4
0
流程图制作软件推荐_流程图制作软件哪个好

流程图(Flow Chart)是一种表示算法思路的图示,通过特定图形、图表可以直观的说明某一过程。这种过程既可以是生产线上的工艺流程图,也可以标明某项任务必需的管理过程。为了便于识别,绘制...

工具分享
41分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部