iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >Linux的free命令有什么用
  • 128
分享到

Linux的free命令有什么用

2023-06-27 23:06:37 128人浏览 薄情痞子
摘要

这篇文章给大家分享的是有关linux的free命令有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Linux free命令用于显示内存状态。free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存

这篇文章给大家分享的是有关linux的free命令有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

Linux free命令用于显示内存状态。free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。

Linux的free命令有什么用

1.在CentOS6及以前的版本中

Centos6及以前的版本中,free命令输出是这样的:

$free -m           total          used      free    shared    buffers    cachedMem:        1002            769      233      0        62        421-/+ buffers/cache:          286      716Swap:        1153          0        1153
第一行

系统内存主要分为四部分:used(程序已使用内存),free(空闲内存),buffers(buffer cache),cached(Page cache)。

系统总内存total = used + free; buffers和cached被算在used里,因此第一行系统已使用内存used = buffers + cached + 第二行系统已使用内存used由于buffers和cached在系统需要时可以被回收使用,因此系统可用内存 = free + buffers + cached;

shared为程序共享的内存空间,往往为0。

第二行

正因为buffers和cached在系统需要时可以被回收使用,因此buffer和cached其实可以可以算作可用内存,因此:

系统可用内存,即第二行的free = 第一行的free + buffers + cached。

系统已使用内存,即第二行的used = total – 第二行free

第三行

swap内存交换空间使用情况

2. CentOS7及以后

CentOS7及以后free命令的输出如下:

# free -m             total        used        free      shared  buff/cache  availableMem:          3440        213        2276        168        950        2778Swap:            0          0          0

buffer和cached被合成一组,加入了一个available,关于此available,文档上的说明如下: •MemAvailable: An estimate of how much memory is available for starting new applications, without swapping.

即系统可用内存,之前说过由于buffer和cache可以在需要时被释放回收,系统可用内存即 free + buffer + cache,在CentOS7之后这种说法并不准确,因为并不是所有的buffer/cache空间都可以被回收。

即available = free + buffer/cache – 不可被回收内存(共享内存段、tmpfs、ramfs等)。

因此在CentOS7之后,用户不需要去计算buffer/cache,即可以看到还有多少内存可用,更加简单直观。

3. buffer/cache相关介绍

什么是buffer/cache?

buffer 和 cache 是两个在计算机技术中被用滥的名词,放在不通语境下会有不同的意义。在 Linux 的内存管理中,这里的 buffer 指 Linux 内存的: Buffer cache 。这里的 cache 指 Linux 内存中的: Page cache 。翻译成中文可以叫做缓冲区缓存和页面缓存。在历史上,它们一个( buffer )被用来当成对 io 设备写的缓存,而另一个( cache )被用来当作对 io 设备的读缓存,这里的 io 设备,主要指的是块设备文件和文件系统上的普通文件。但是现在,它们的意义已经不一样了。在当前的内核中, page cache 顾名思义就是针对内存页的缓存,说白了就是,如果有内存是以 page 进行分配管理的,都可以使用 page cache 作为其缓存来管理使用。当然,不是所有的内存都是以页( page )进行管理的,也有很多是针对块( block )进行管理的,这部分内存使用如果要用到 cache 功能,则都集中到 buffer cache 中来使用。(从这个角度出发,是不是 buffer cache 改名叫做 block cache 更好?)然而,也不是所有块( block )都有固定长度,系统上块的长度主要是根据所使用的块设备决定的,而页长度在 X86 上无论是 32 位还是 64 位都是 4k 。

明白了这两套缓存系统的区别,就可以理解它们究竟都可以用来做什么了。

什么是 page cache

Page cache 主要用来作为文件系统上的文件数据的缓存来用,尤其是针对当进程对文件有 read / write 操作的时候。如果你仔细想想的话,作为可以映射文件到内存的系统调用: mmap 是不是很自然的也应该用到 page cache ?在当前的系统实现里, page cache 也被作为其它文件类型的缓存设备来用,所以事实上 page cache 也负责了大部分的块设备文件的缓存工作。

Linux的free命令有什么用
详解CentOS的free命令详解CentOS的free命令

什么是 buffer cache

Buffer cache 则主要是设计用来在系统对块设备进行读写的时候,对块进行数据缓存的系统来使用。这意味着某些对块的操作会使用 buffer cache 进行缓存,比如我们在格式化文件系统的时候。一般情况下两个缓存系统是一起配合使用的,比如当我们对一个文件进行写操作的时候, page cache 的内容会被改变,而 buffer cache 则可以用来将 page 标记为不同的缓冲区,并记录是哪一个缓冲区被修改了。这样,内核在后续执行脏数据的回写( writeback )时,就不用将整个 page 写回,而只需要写回修改的部分即可。

如何回收 cache ?

Linux 内核会在内存将要耗尽的时候,触发内存回收的工作,以便释放出内存给急需内存的进程使用。一般情况下,这个操作中主要的内存释放都来自于对 buffer / cache 的释放。尤其是被使用更多的 cache 空间。既然它主要用来做缓存,只是在内存够用的时候加快进程对文件的读写速度,那么在内存压力较大的情况下,当然有必要清空释放 cache ,作为 free 空间分给相关进程使用。所以一般情况下,我们认为 buffer/cache 空间可以被释放,这个理解是正确的。

但是这种清缓存的工作也并不是没有成本。理解 cache 是干什么的就可以明白清缓存必须保证 cache 中的数据跟对应文件中的数据一致,才能对 cache 进行释放。所以伴随着 cache 清除的行为的,一般都是系统 IO 飙高。因为内核要对比 cache 中的数据和对应硬盘文件上的数据是否一致,如果不一致需要写回,之后才能回收。

在系统中除了内存将被耗尽的时候可以清缓存以外,我们还可以使用下面这个文件来人工触发缓存清除的操作:

[root@tencent64 ~]# cat /proc/sys/vm/drop_caches1

方法是:

echo 1 > /proc/sys/vm/drop_caches

当然,这个文件可以设置的值分别为 1 、 2 、 3 。它们所表示的含义为:

echo 1 > /proc/sys/vm/drop_caches:

表示清除 pagecache 。

echo 2 > /proc/sys/vm/drop_caches:

表示清除回收 slab 分配器中的对象(包括目录项缓存和 inode 缓存)。 slab 分配器是内核中管理内存的一种机制,其中很多缓存数据实现都是用的 pagecache 。

echo 3 > /proc/sys/vm/drop_caches:

表示清除 pagecache 和 slab 分配器中的缓存对象。

感谢各位的阅读!关于“Linux的free命令有什么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: Linux的free命令有什么用

本文链接: https://www.lsjlt.com/news/314622.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Linux的free命令有什么用
    这篇文章给大家分享的是有关Linux的free命令有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Linux free命令用于显示内存状态。free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存...
    99+
    2023-06-27
  • Linux中的free命令有什么用
    这篇文章主要为大家展示了“Linux中的free命令有什么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux中的free命令有什么用”这篇文章吧。在Linux系统中free 命令显示系统...
    99+
    2023-06-28
  • Linux中free命令有什么用
    这篇文章主要为大家展示了“Linux中free命令有什么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux中free命令有什么用”这篇文章吧。Linux 系统管理员面临的一大挑战是如何在...
    99+
    2023-06-12
  • Linux系统的free命令有什么用
    这期内容当中小编将会给大家带来有关Linux系统的free命令有什么用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。free 命令显示系统内存的使用情况,包括物理内存、交换内存(swap)和内核缓冲区内存...
    99+
    2023-06-28
  • Linux free命令怎么用
    这篇“Linux free命令怎么用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Linux free命令怎么用”文章吧。L...
    99+
    2023-06-28
  • Linux常用命令free怎么用
    这篇文章将为大家详细讲解有关Linux常用命令free怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Linux常用命令free命令用于显示内存状态,free指令会显示内存的使用情况,包括实体内存,虚...
    99+
    2023-06-28
  • linux中free命令的作用
    linux中free命令的作用:在linux中free命令可以用来显示内存状态;语法格式为:“free [参数][-s ]”,例如在linux终端中输入“free -s 10”命令则每10s执行一次命令,实现周期性的查询内存使用信息。具体使...
    99+
    2024-04-02
  • linux中的free命令怎么用
    这篇文章给大家分享的是有关linux中的free命令怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Linux free 命令让我们看一下 free 命令的语法:free [options]free...
    99+
    2023-06-16
  • linux中free命令怎么使用
    本篇内容介绍了“linux中free命令怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2023-03-02
    linux free
  • 怎么在Linux中使用free命令
    今天就跟大家聊聊有关怎么在Linux中使用free命令,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。           ...
    99+
    2023-06-13
  • free命令怎么在linux中使用
    free命令怎么在linux中使用?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。命  令: free 功能说明:显示内存状态。 语  法: free [-bkmotV][-...
    99+
    2023-06-13
  • Linux下free命令常用实例有哪些
    这篇文章主要介绍了Linux下free命令常用实例有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Linux free 命令让我们看一下 free 命令的语法:free&...
    99+
    2023-06-28
  • Linux性能监控命令free怎么用
    这篇文章将为大家详细讲解有关Linux性能监控命令free怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在Linux系统中可以使用ree命令来定位IO瓶颈,内存使用率高,cpu使用率高等问题,fre...
    99+
    2023-06-28
  • Linux系统命令free的使用方法
    这篇文章将为大家详细讲解有关Linux系统命令free的使用方法,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Linux系统中free命令最主要的用途就是用来显示内存的状态,其中包括实体内存...
    99+
    2023-06-28
  • 如何在linux中使用free命令
    如何在linux中使用free命令?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1.命令格式:free [参数]2.命令功能:free 命令显示系统使用...
    99+
    2023-06-13
  • Linux命令中的cat命令有什么用
    今天给大家介绍一下Linux命令中的cat命令有什么用。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。cat命令的用途是连接文件或标准输入并打印。这个命令常用来...
    99+
    2023-06-28
  • linux的Tar命令有什么用
    这篇文章将为大家详细讲解有关linux的Tar命令有什么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。打包: tar -cf soft.tar soft解包: tar -xf soft.tar soft...
    99+
    2023-06-17
  • Linux的unset命令有什么用
    本文小编为大家详细介绍“Linux的unset命令有什么用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Linux的unset命令有什么用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。Linux常用命令unse...
    99+
    2023-06-28
  • Linux的unexpand命令有什么用
    这篇文章主要介绍“Linux的unexpand命令有什么用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Linux的unexpand命令有什么用”文章能帮助大家解决问题。Linux常用命令unexp...
    99+
    2023-06-28
  • Linux的tload命令有什么用
    这篇文章主要介绍“Linux的tload命令有什么用”,在日常操作中,相信很多人在Linux的tload命令有什么用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux的tload命令有什么用”的疑惑有所...
    99+
    2023-06-28
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作