Linux上的free命令详解

Linux命令·free free命令可以显示Linux系统中空闲的、已用的物理内存及swap内存,及被内核使用的buffer 阅读详情

 解释一下Linux上free命令的输出。

  下面是free的运行结果,一共有4行。为了方便说明,我加上了列号。这样可以把free的输出看成一个二维数组FO(Free Output)。例如:

  • FO[2][1] = 24677460
  • FO[3][2] = 10321516  
  123456
1 totalusedfreesharedbufferscached
2

Mem:

24677460232760641401396087054012084008
3

-/+ buffers/cache:

1032151614355944   
4

Swap:

2515148422418824927296   

  free的输出一共有四行,第四行为交换区的信息,分别是交换的总量(total),使用量(used)和有多少空闲的交换区(free),这个比较清楚,不说太多。

  free输出地第二行和第三行是比较让人迷惑的。这两行都是说明内存使用情况的。第一列是总量(total),第二列是使用量(used),第三列是可用量(free)。

  第一行的输出时从操作系统(OS)来看的。也就是说,从OS的角度来看,计算机上一共有:

  • 24677460KB(缺省时free的单位为KB)物理内存,即FO[2][1];
  • 在这些物理内存中有23276064KB(即FO[2][2])被使用了;
  • 还用1401396KB(即FO[2][3])是可用的;

这里得到第一个等式:

  • FO[2][1] = FO[2][2] + FO[2][3]

FO[2][4]表示被几个进程共享的内存的,现在已经deprecated,其值总是0(当然在一些系统上也可能不是0,主要取决于free命令是怎么实现的)。

FO[2][5]表示被OS buffer住的内存。FO[2][6]表示被OS cache的内存。在有些时候buffer和cache这两个词经常混用。不过在一些比较低层的软件里是要区分这两个词的,看老外的洋文:

  • A buffer is something that has yet to be "written" to disk.
  • A cache is something that has been "read" from the disk and stored for later use.

也就是说buffer是用于存放要输出到disk(块设备)的数据的,而cache是存放从disk上读出的数据。这二者是为了提高IO性能的,并由OS管理。

Linux和其他成熟的操作系统(例如windows),为了提高IO read的性能,总是要多cache一些数据,这也就是为什么FO[2][6](cached memory)比较大,而FO[2][3]比较小的原因。我们可以做一个简单的测试:

  1. 释放掉被系统cache占用的数据;
           echo  3 >/ proc / sys / vm / drop_caches
  1. 读一个大文件,并记录时间;
  2. 关闭该文件;
  3. 重读这个大文件,并记录时间;

第二次读应该比第一次快很多。原来我做过一个BerkeleyDB的读操作,大概要读5G的文件,几千万条记录。在我的环境上,第二次读比第一次大概可以快9倍左右。

  free输出的第二行是从一个应用程序的角度看系统内存的使用情况。

  • 对于FO[3][2],即-buffers/cache,表示一个应用程序认为系统被用掉多少内存;
  • 对于FO[3][3],即+buffers/cache,表示一个应用程序认为系统还有多少内存;

因为被系统cache和buffer占用的内存可以被快速回收,所以通常FO[3][3]比FO[2][3]会大很多。

这里还用两个等式:

  • FO[3][2] = FO[2][2] - FO[2][5] - FO[2][6]
  • FO[3][3] = FO[2][3] + FO[2][5] + FO[2][6]

这二者都不难理解。

  free命令由procps.*.rpm提供(在Redhat系列的OS上)。free命令的所有输出值都是从/proc/meminfo中读出的。

在系统上可能有meminfo(2)这个函数,它就是为了解析/proc/meminfo的。procps这个包自己实现了meminfo()这个函数。可以下载一个procps的tar包看看具体实现,现在最新版式3.2.8。

-----------------------
 
 
Linux常用命令之free命令详解 free 是一个不可或缺的命令行工具,它提供的信息对于保持系统的稳定性和高效性至关重要。掌握 free 的使用方法,可以帮助更加有效地管理和优化 Linux 系统。 阅读详情

相关推荐

2019-ICCV-台湾大学-Free-form Video Inpainting with 3D Gated Convolution and Temporal PatchGAN

高清还原破损视频 BMVC 2019 每个被破损的视频,经过AI还原之后,仿佛从来没有被破坏过一样,完整清晰。 可学习的门控时移模块,Learnable Gated Temporal Shift Module,LGTSM 整体的模型则是由U-net类生成器和TSMGAN鉴别器构成,LGTSM模块所处的位置就是生成器内,除此之外生成器还包括11个卷积层。 基于YouTube视频制作的FaceForensics和FVI数据集,总共视频数量超过16000个。 在两个数据集上,LGTSM和目前成绩最好的.

WX_Chen的博客 10万+

free 命令详解

物理メモリ利用状況の監視にfreeコマンドってどうなの?  結論からいうと、freeコマンドだけではメモリの利用状況を監視するには不十分です。これを理解するためにfreeコマンドの出力例を見てみましょう(図1)。 図1 freeコマンド出力例  図中で「-/+ buffers/cache」という行の「used」と「free」に当たる部分は、それぞれ「used-」「free+」と呼

闲云孤鹤 16万+

从零组装一台会‘看’的无人机:手把手教你配置NUC机载电脑与D435深度相机(环境搭建篇)

本文详细介绍了如何从零开始组装一台具备视觉能力的智能无人机,重点讲解了NUC机载电脑与D435深度相机的配置方法。通过Ubuntu系统安装、ROS环境搭建、深度学习框架配置等步骤,帮助开发者实现无人机的自主避障和目标跟踪功能。文章还提供了性能优化和常见问题解决方案,是无人机视觉系统开发的实用指南。

weixin_30915275的博客 397

linux free命令详解

一. 作用 free命令可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区。 二. 语法  free [选项] 三. 选项 默认情况下,即在没有选项的情况下,"free"命令显示内存的使用信息。默认按照k(b)的计数单位统计。 total:表示 总计物理内存的大小。 used:表示 已使用多少。 free:表示 可用内存多少。 Shared:表示多个进程共享的内存总额。 Buffers/cached:表示 磁盘缓存的大小。 四. 选项 ...

wd520521的博客 2万+

ArcGIS中的Python入门知识点整理

关于Arcpy大家应该都比较熟悉,Python用的好,数据处理快又好!在ArcGIS中ArcPy是一个以成功的arcgisscripting模块为基础并继承了arcgisscripting功能进而构建而成的站点包。目的是为以实用高效的方式通过Python执行地理数据分析、数据转换、数据管理和地图自动化创建基础。ArcPy提供了丰富纯正的Python体验,具有代码自动完成功能。今天我们就看看关于Arcpy相关处理的使用,通过一些简单代码与大家一起认识Arcpy。

xjt921122的博客 1771

BlenderGis安装碰到问题,ImageIO、无法点击和地图不加载

BlenderGis安装碰到问题,ImageIO、无法点击和地图不加载问题

qq_45176349的博客 4964

linux下free命令详解

top命令是一个在终端下运行的实时性能监测工具,它以交互式的方式显示系统的状态和进程活动。通过top命令,我们可以实时查看CPU、内存、进程、负载等关键性能指标,帮助我们监测系统的健康状况。top命令在系统监测和性能调优中具有重要的作用。通过实时查看关键性能指标和进程信息,我们可以及时发现系统的瓶颈和问题,从而采取相应的措施进行优化。监测系统负载:通过观察负载平均值,我们可以评估系统的负载情况,及时调整资源分配,确保系统的稳定运行。

AnChenliang_1002的博客 1万+

独立站如何采集商品?外贸独立站采集教程

从这里Robert了解到还有国内有很多仿牌卖家、微商,都有类似的情况,他们出海的阻碍主要在于支付、物流、推广。8.插件“抓取任务”列表手动点同步,将商品同步到主商城后台商品管理列表(商品默认同步到下架列表中) 后台商品管理下架列表显示已同步商品。5.店铺信息修改完成后,可以开始采集商品,采集时弹窗中会自动识别当前平台及商品链接,分类和相册名称可以自定义 编辑修改。4. 打开采集目标站商品页面,点开谷歌浏览器扩展程序列表,找到Shopyy采集平台,打开配置页。打开弹窗中的“店铺管理”,添加店铺信息。

Jernnifer_mao的博客 1378

Linux free命令及详解

一、free作用 Linux free命令用于显示内存状态。 free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。 二、free详解 默认情况下是以KB为单位显示 total:表示总物理内存的大小 used: ...

yinhangtian的博客 6798

解决vscode 连接服务器报错:The remote host may not meet VS Code Server‘s prerequisites for glibc and libstdc++

解决vscode远程连接服务器报错:The remote host may not meet VS Code Server's prerequisites for glibc and libstdc++ (The remote host does not meet the prerequisites for running VS Code Server)

qq_37200100的博客 9910

DeepSeek Harness“一切皆插件”核心机制详解

DeepSeek Harness 的“一切皆插件”核心 = Cordis 微内核 + 服务化能力接口 + 声明式依赖注入 + 类型化事件 + 可逆副作用 + 配置层 Profile/Bundle/Patch 组合。它的工程收益是:把模型、工具、循环、存储、UI 等所有 Agent 能力都变成“可从配置替换、可干净装卸”的单元,而不是写死在框架里。

软件行业技术文化交流。 600

linux free命令_linux free命令详解(一)

一. 作用 free命令可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区。二. 语法 free [选项]三. 选项 默认情况下,即在没有选项的情况下,"free"命令显示内存的使用信息。默认按照k(b)的计数单位统计。total:表示 总计物理内存的大小。used:表示 已使用多少。free:表示 可用内存多少。Shared:表示多个进程共享的内存总额。Buffers/...

weixin_35968240的博客 1269

什么是DHCP Snooping?如何配置DHCP Snooping?

功能描述防护类型防御伪造 DHCP 服务器、避免地址冲突、增强网络安全性使用场景企业园区网、校园网、大型局域网配合机制IP Source Guard、DAI、防止 ARP 欺骗部署难度⭐⭐(简单)“DHCP Snooping,是内网 DHCP 安全防护的第一道门神。” 🛡️。

网络技术联盟站 1267

Linux中 free 命令详解

free命令可以用来查看系统内存使用情况。我一般习惯-m参数以MB的方式查看 free -m 其他参数 -b  以Byte为单位显示内存使用情况。  -k  以KB为单位显示内存使用情况。  -m  以MB为单位显示内存使用情况。 -g   以GB为单位显示内存使用情况。  -o  不显示缓冲区调节列。  -s<间隔秒数>  持续观察内存使用状况。  -t...

liangkk的博客 2902

读懂ARM汇编程序,你只差这篇!保姆级教程(附完整示例剖析)!

ARM汇编中的符号、标号、伪操作有哪些?C语言和汇编语言如何混合编程?GNU ARM汇编和ARM汇编的区别有哪些?

车载系统攻城狮 1万+

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Linux free命令详解

Linux的free命令详解转自http://www.cnblogs.com/imapla/archive/2013/02/15/2912752.html如下显示free是显示的当前内存的使用,-m的意思是M字节来显示内容.我们来一起看看.123456$ free-mtotal used freeshared...

weixin_34301132的博客 98

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

linux free 命令详解

free 命令显示系统内存的使用情况,包括物理内存、交换内存(swap)和内核缓冲区内存。 如果加上 -h 选项,输出的结果会友好很多: 有时我们需要持续的观察内存的状况,此时可以使用 -s 选项并指定间隔的秒数: $ free -h -s 3 上面的命令每隔 3 秒输出一次内存的使用情况,直到你按下 ctrl + c。 由于 free 命令本身比较简单,所...

a624575745856085的博客 4532

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

详解Linux命令--free

free命令是Linux中最常用的命令之一,用于显示系统内存使用情况。本文将详细介绍free命令的用法,并给出具体的示例。

简介 1893

Linux下free命令详解

free 命令显示系统内存的使用情况,包括物理内存、交换内存(swap)和内核缓冲区内存。 如果加上 -h 选项,输出的结果会友好很多: 有时我们需要持续的观察内存的状况,此时可以使用 -s 选项并指定间隔的秒数: $ free -h -s 3 上面的命令每隔 3 秒输出一次内存的使用情况,直到你按下 ctrl + c。 由于 free 命令本身比较简单,所以本文的重点会放在如何通过 free 命令了解系统当前的内存使用状况。 输出简介 下面先解释一下输出的内容: Mem 行(第二行)是内存的使用情

FaceThePast的博客 1553

Linux free 命令详解

Linux free 命令详解 free 命令用来查看系统中已用的和可用的内存。 命令选项及输出简介 关于各种命令的功能和命令选项,还是推荐英语比较好的同学直接看手册 RTFM:man free。这里简单总结一下一些重点: 功能及输出简介 free 命令显示系统中可用和使用的物理内存和交换内存的总量,以及内核所使用的缓冲区 (buffers) 和缓存 (caches) 。通过解析 /proc/meminfo 收集信息。显示的列包括: total:所有的内存 used:使用的内存 free:未使用的内存 s

weixin_44966641的博客 1179
上一篇: 防火墙工作模式简介
下一篇: 每天一个linux命令(44):top命令
no pay no gay
博客等级 码龄14年 73粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值