zoukankan      html  css  js  c++  java
  • Linux 常用命令 | free 详解

    free命令可以显示Linux系统中空闲的、已用的物理内存及swap内存,及被内核使用的buffer。在Linux系统监控的工具中,free命令是最经常使用的命令之一。本文介绍free命令的使用方法和数值解释。

    可以看到,自由输出的是一个表格,其中的数值都默认以字节为单位。表格总共有两行六列,这两行分别是物理内存Swap的使用情况,而六列中,每列数据的含义分别为:

    • 第一列,总是总内存大小;

    • 第二列,使用是已使用内存的大小,包含了共享内存;

    • 第三列,自由是未使用内存的大小;

    • 第四列,共享是共享内存的大小;

    • 第五列,浅黄色/高速缓存是缓存和缓冲区的大小;

    • 最后一列,可以是新进程可用内存的大小。

    注意一下,最后一列的可用内存available.available不仅包含未使用内存,还包括了可回收的缓存,所以一般会比未使用内存更大。不过,并不是所有缓存都可以回收,因为有些缓存可能正在使用中。

    这里的缓冲和缓存是什么意思呢?我们可以通过man free查看解释。

    DESCRIPTION
           free displays the total amount of free and used physical and swap memory in the system, as well as the buffers and caches used by the kernel. The information is gathered by parsing /proc/meminfo. The displayed columns are:
    
           total  Total installed memory (MemTotal and SwapTotal in /proc/meminfo)
    
           used   Used memory (calculated as total - free - buffers - cache)
    
           free   Unused memory (MemFree and SwapFree in /proc/meminfo)
    
           shared Memory used (mostly) by tmpfs (Shmem in /proc/meminfo)
    
           buffers
                  Memory used by kernel buffers (Buffers in /proc/meminfo)
    
           cache  Memory used by the page cache and slabs (Cached and SReclaimable in /proc/meminfo)
    
           buff/cache
                  Sum of buffers and cache
    
           available
                  Estimation  of  how  much  memory  is  available  for  starting  new  applications, without swapping. Unlike the data provided by the cache or free fields, this field takes into account page cache and also that not all
                  reclaimable memory slabs will be reclaimed due to items being in use (MemAvailable in /proc/meminfo, available on kernels 3.14, emulated on kernels 2.6.27+, otherwise the same as free)

    可以看到buff和缓存的数据来源都是来自/ proc / meminfo。

    • Buffers是内核缓冲区用到的内存,对应的是/ proc / meminfo中的Buffers值;

    • 缓存是内核页缓存和Slab用到的内存,对应的是/ proc / meminfo中的缓存与SReclaimable之和。

  • 相关阅读:
    nodejs/REPL环境命令行操作命令
    C++ Primer第五版学习笔记七 类简介(编译用到C++11特性,编译命令需要加-std=c++11参数,break结束while)
    C++ Primer第五版学习笔记六 控制流之if语句
    C++ Primer第五版学习笔记五 控制流之读取数量不定的输入数据
    C++ Primer第五版学习笔记四 控制流之while,for语句
    C++ Primer第五版学习笔记三 C++中的注释
    C++ Primer第五版学习笔记二 初识输入输出
    C++ Primer第五版学习笔记一 一个简单的C++程序
    QT学习笔记二 窗口和子部件
    QT学习笔记一 初识QT Creator 新建一个Dialog窗口
  • 原文地址:https://www.cnblogs.com/wxiaote/p/10976522.html
Copyright © 2011-2022 走看看