科百科
当前位置: 首页 范文大全

linux剩余内存和可使用内存(Linux上的free命令详解Buffer和Cache)

时间:2023-07-05 作者: 小编 阅读量: 3 栏目名: 范文大全

第一列是总量,第二列是使用量,第三列是可用量。第一行的输出时从操作系统来看的。FO[2][5]表示被OSbuffer住的内存。在有些时候buffer和cache这两个词经常混用。这二者是为了提高IO性能的,并由OS管理。free命令的所有输出值都是从/proc/meminfo中读出的。在系统上可能有meminfo这个函数,它就是为了解析/proc/meminfo的。procps这个包自己实现了meminfo()这个函数。可以下载一个procps的tar包看看具体实现,现在最新版式3.2.8。

linux剩余内存和可使用内存?解释一下Linux上free命令的输出下面是free的运行结果,一共有4行为了方便说明,我加上了列号这样可以把free的输出看成一个二维数组FO(Free Output)例如:,我来为大家讲解一下关于linux剩余内存和可使用内存?跟着小编一起来看一看吧!

linux剩余内存和可使用内存

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

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

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

1 2 3 4 5 6

1 total used free shared Buffers cached

2 Mem: 24677460 23276064 1401396 0 870540 12084008

3 -/buffers/cache: 10321516 14355944

4 Swap: 25151484 224188 24927296

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占用的数据;
  2. echo 3>/proc/sys/vm/drop_caches
  3. 读一个大文件,并记录时间;
  4. 关闭该文件;
  5. 重读这个大文件,并记录时间;

第二次读应该比第一次快很多。原来我做过一个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。

    推荐阅读
  • 反恐精英最经典的场景(民间大神自制NDS版反恐精英)

    在NDS掌机上玩第一人称射击游戏乍一听似乎是个不切实际的想法,但《使命召唤》有多款作品就移植到了这台掌机上面。虽然NDS掌机已在数年前告别市场,但玩家对这台掌机的兴趣并没有完全消失。如今有玩家竟然还把《反恐精英》移植到了NDS上面,并已提供alpha版本下载。这个版本看起来像是《反恐精英:起源》的高度降质版本。

  • 江世孝名字打分109分

    文章目录:一、江世孝相关名字打分96二、江世孝相关名字评分111三、江世孝相关名字推荐四、江世孝相关名字大全五、其他人还看了一、江世孝相关名字打分96江威江晓晓江万朝江榨菜江锦桓江越君江家军江狼江耀城江曼江其虎江化霖江萌江石溪江建辉江环江渚江钓竿江枫苑江政江雨泽江蟹生江诗顿江可伯江滢江瑜诗江鹏坚江有汜江朗山江一一江底江埠江学良江卫级江融信江源区江百川江兴流江洲江泽涛江倩龄江霞江晓华江维杰江标武江联

  • 光纤显示红色的灯是怎么回事 光纤指示灯是红色的怎么办

    演示机型:华为MateBookX系统版本:win101、机房光口发光较低或不发光,造成用户端光猫工作不正常,此时光信号灯收不到光缆上发来的光信号,会造成光猫跟机房连接不正常,此时光信号灯会闪亮或者红灯告警。

  • 干鱿鱼炒腊肠怎么做好吃(腊肠鱿鱼干炒粉条的做法)

    跟着小编一起来看一看吧!干鱿鱼炒腊肠怎么做好吃主料:红薯粉条300g、绿豆芽150g、鱿鱼干70g、腊肠80g、萝卜干40g;辅料:油适量、盐适量、辣椒酱适量、香葱80g。准备好薯粉条;香葱洗净,切成5CM长的段。腊肠、萝卜干、鱿鱼干洗净,切成细条。绿豆芽洗净,滤水。放盐和适量的辣椒酱,炒匀。起锅前放入葱段,炒匀即可。

  • 野米是什么米(关于野米的介绍)

    野米是中国进口美洲菰米的翻译叫法,野米与稻米是两种不同的东西。野米是一种禾本科菰的种子,外壳不用打磨,呈灰黑颜色,含有极高的营养成分。野米产地颇广,美洲与亚洲均有,但一般处于野生状态,因而价格不菲。里面含有大量的蛋白质、维生素、微量元素、膳食纤维,号称米中之王。里面含有大量的维生素a、维生素e可以有效的对抗自由基、延缓皮肤衰老,并且可以起到改善视力、降低视觉疲劳的作用。

  • 糖尿病患者应多喝水还是少喝水(糖尿病病人应该是多喝水还是少喝水)

    糖尿病人口渴其实和尿液、血液中的高渗现象密切相关。糖尿病人在患有心脏疾病、下肢水肿或者其他疾病导致体内水分不能顺利排出时,应该限制饮水。此时,病人体内有大量水分排不出去,多喝水只会加重心脏、肾脏等器官的负担。不喝饮料咖啡,少吃盐和糖,可以减少糖友们的喝水量,但是不要因噎废食,我们最终的目的,是控制血糖,保证身体健康。

  • 人生感悟十句句句戳心(人生感悟经典说说)

    高调低调,看胸襟;大事小事,看担当;顺境逆境,看把握;是得是舍,看欲望。成败得失,看坚持;淡然释然,看心情;是非曲直,看度量。人生,有许多事情无法言说。有些快乐,别人未必能理解;有些悲伤,别人未必能感受。学历是铜牌,能力是银牌,人脉是金牌,思维是王牌。人年纪越大,脾气越好,大约是因为在意的也越来越少。以前觉得完全接受不了的事情在岁月的掩映下显得微不足道,没什么大不了。

  • 戴字怎么组词(戴的组词有哪些)

    以下内容大家不妨参考一二希望能帮到您!形容早出晚归或连夜赶路。也作“披星带月”、“戴月披星”。张冠李戴[zhāngguānlǐdài]姓张的帽子戴到姓李的头上,比喻弄错了对象或弄错了事实。戴罪立功[dàizuìlìgōng]在承当某种罪名的情况下建立功劳。表示喜庆或光荣。不跟仇敌在同一个天底下生活。形容仇恨很深,誓不两立。感恩戴德[gǎnēndàidé]感:感激。感激别人给予自己的恩德。

  • 有理走遍天下的下一句(有理走遍天下的下一句是什么)

    以下内容希望对你有帮助!有理走遍天下的下一句有理走遍天下下一句是:无理寸步难行。