首页 > 系统相关 >如何通过free看懂内存的真实使用

如何通过free看懂内存的真实使用

时间:2022-08-30 17:00:46浏览次数:62  
标签:真实 缓存 cache free 内存 物理 buff

  free命令是Liunx操作系统中对内存进行查看和监控的一个常用命令。我们可以直接执行free命令获取操作系统内存使用的相关数据,如下所示:

[root@ufdb165 ~]# free
              total        used        free      shared  buff/cache   available
Mem:       63722036     2850012     5629452    16861900    55242572    43486320
Swap:      33554428           0    33554428

  默认直接执行free获取到的内存数据的单位都是k,Mem这一行展示的是物理内存使用情况,Swap这一行展示的是内存交换区(通常也叫虚拟内存)的整体使用情况。

  • tatal列:显示的是系统总的可用物理内存和交换区的大小,单位为k。
  • used列:显示的是已经被使用的物理内存和交换区的大小,单位为k。
  • free列:显示的是还有多少物理内存和交换区没有被使用,单位为k。
  • shared列:显示的是共享区占用的物理内存大小,单位为k。
  • buff/cache列:显示的是被缓冲区和page缓存合计使用的物理内存大小,单位为k。
    • buff:在操作系统中指的是缓冲区,负责磁盘块设备的读写缓冲,会直接占用系统的物理内存。
    • cache:指的是操作系统中的page缓存,这个缓存是Liunx内核实现的磁盘缓存,就是将磁盘中的数据缓存到物理内存中,以减少内核对磁盘I/O的读写操作,这样对磁盘的访问就会变为对物理内存的访问,从而大大提高了系统对磁盘的读写速度。cache类似于应用程序中使用redis来实现缓存一样,其实就是把一些经常需要访问的数据存储到物理内存中来提高数据访问的速度。 
  • available列:显示的是可用物理内存的大小,单位为k。通常情况下,avaliable的值等于free+buff/cacheLiunx内核为了提高磁盘读写的速度会使用一部分物理内存来缓存经常要使用的磁盘数据,所以buff和cache对于Linux操作系统的内核来说,都属于已经被使用的内存,而free列显示的是真正未被使用的物理内存。不过,如果物理内存不够用了并且应用程序恰巧又需要使用物理内存时,内核就会从buff和cache中回收被它们占用的物理内存来满足应用程序的需要,也就是说buff和cache占用的物理内存是可以被内核释放的。

 

标签:真实,缓存,cache,free,内存,物理,buff
From: https://www.cnblogs.com/silgen/p/16639986.html

相关文章

  • JavaScript 引擎,一个真实的故事(第 1 部分)
    JavaScript引擎,一个真实的故事(第1部分)一个任何使用过JavaScript的人都可能熟悉V8引擎。大多数人都知道JavaScript在单线程中运行并使用回调,这对于语言引擎背后......
  • Javascript 中的内存引用
    Javascript中的内存引用Photoby哈里森布罗德本特on不飞溅在本文中,我将尝试通过一个示例练习来解释Javascript中的内存引用是如何处理的,我认为这可以更好地展示......
  • C# 32位程序,申请大内存,附dome(wpf),亲测可用
    1、我是vs2017,在选装vs的时候,需要安装c++模块,因为申请大内存的必要exe存放在vc的某个目录(下面会给出详细的地址)下的2、安装完成在vs的安装目录可找到这个文件,我是社区版本......
  • 我在 Rust 中的第一个真实代码
    我在Rust中的第一个真实代码每种语言都始于游乐场。你可以在那里做一些令人惊奇的事情,但它们就像邻近的儿童沙饼一样令人惊奇。一旦你从操场进入“做一些真正的事情”,......
  • CentOS 7下安装docker和FreeSWITCH-全过程
    具体步骤如下:准备工作:提前将安装包放在CentOS系统下(提前创建好文件夹,这里为:/home/freeswitch(后转移至/home/soft-fs),所需文件如下: 复制第1、3、4、5到本地计算机(这里路......
  • 有关内存
    https://docs.microsoft.com/zh-cn/dotnet/standard/automatic-memory-managementhttps://zditect.com/article/10252205.htmlhttps://blog.csdn.net/lhypang2006/artic......
  • 项目中索引的真实应用场景-2022新项目
    一、业务场景项目开发中,数据存储是一定少不了的,不管是存储关系型数据还是还是非关系型数据。可选择的范围也很广,比如mysql,postgresql,oracle,mongodb等等。一般都是根......
  • 8/28 深入理解计算机系统笔记 内存映射
    9.8内存映射定义:将一个虚拟内存区域和一个磁盘上的对象关联起来,以初始化这个虚拟内存区域的内容的过程被称为内存映射。虚拟内存区域可以映射到下面两种类型的对象中的......
  • 8/28 深入理解计算机系统笔记 动态内存分配
    9.9动态内存分配动态内存分配器维护一个进程的虚拟内存区域,称为堆。对于每个进程,内核维护一个变量brk,它指向堆的顶部。分配器将堆视做一组不同大小的块的集合来维护。......
  • Tauri VS. Electron - 真实项目的比较
    文章翻译自:TauriVS.Electron-Realworldapplication以下是正文:在这篇文章中我将会用真实的项目来比较Electron和Tauri: Authme。Authme是一个跨平台使用双因素......