• Linux命令:free命令



    一、简介

    free 命令可以显示Linux系统中 空闲的已用的物理内存swap内存,及 被内核使用的buffer。在Linux系统监控的工具中,free命令是最经常使用的命令之一。

    free命令:

    free [option]
    
    • 1

    可选参数:

    参数说明
    -b以Byte为单位显示内存使用情况
    -k以KB为单位显示内存使用情况
    -m以MB为单位显示内存使用情况
    -g以GB为单位显示内存使用情况
    -h根据内存大小自动选择合适的单位显示
    -o不显示缓冲区调节列
    -s持续观察内存使用状况
    -c和-s配合使用
    -t显示内存总和列
    -V显示版本信息

    二、free -h

    命令如下:

    free -h
    
    • 1

    输出结果:

                  total        used        free      shared  buff/cache   available
    Mem:            23G        7.5G        7.5G         25M        8.3G         13G
    Swap:            0B          0B          0B
    
    • 1
    • 2
    • 3

    字段说明:

    • Mem:具体的物理内存;
    • Swap:Swap分区的使用情况;

    Mem字段说明:

    参数说明
    total总计物理内存的大小
    used已使用的物理内存的大小
    free可用物理内存有多少
    shared多个进程共享的内存总额
    buff/cache写入和读取 磁盘内存缓冲区的大小
    available从应用程序的角度看到的可用内存数量

    Swap分区字段说明:

    参数说明
    totalSwap分区内存的大小
    used已使用的Swap分区内存的大小
    free可用Swap分区内存有多少

    1、free列和available列的区别

    free列和available列都是可用内存,那么二者的区别在哪里呢?

    • free:是真正尚未被使用的物理内存数量。

    • available:就比较有意思了,它是从应用程序的角度看到的可用内存数量。

    Linux 内核为了提升磁盘操作的性能,会消耗一部分内存去缓存磁盘数据,就是我们介绍的 buffercache。所以对于内核来说,buffercache 都属于已经被使用的内存。

    当应用程序需要内存时,如果没有足够的 free 内存可以用,内核就会从 buffercache 中回收内存来满足应用程序的请求。所以从应用程序的角度来说:

    available  = free + buffer + cache
    
    • 1

    请注意,这只是一个很理想的计算方式,实际中的数据往往有较大的误差。

    available 这个参数的输出需要操作系统内核支持,如果内核不支持的话就固定输出一个0


    2、swap空间

    swap space 是磁盘上的一块区域,可以是一个分区,也可以是一个文件。所以具体的实现可以是 swap分区 也可以是 swap文件

    当系统物理内存吃紧时(所谓的吃紧,应该是指当释放了Cache和Buffer的内存,内存还是不够用~),Linux 会将内存中不常访问的数据保存到 swap 上,这样系统就有更多的物理内存为各个进程服务,而当系统需要访问 swap 上存储的内容时,再将 swap 上的数据加载到内存中,这就是常说的换出和换入。

    交换空间可以在一定程度上缓解内存不足的情况,但是它需要读写磁盘数据,所以性能不是很高


    现在的机器一般都不太缺内存,如果系统默认还是使用了 swap 是不是会拖累系统的性能?

    理论上是的,但实际上可能性并不是很大。并且内核提供了一个叫做 swappiness 的参数,用于配置需要将内存中不常用的数据移到 swap 中去的紧迫程度。这个参数的取值范围是 0~100,0 告诉内核尽可能的不要将内存数据移到 swap 中,也即只有在迫不得已的情况下才这么做,而 100 告诉内核只要有可能,尽量的将内存中不常访问的数据移到 swap 中。

    ubuntu 系统中,swappiness 的默认值是 60。如果我们觉着内存充足,可以在 /etc/sysctl.conf 文件中设置 swappiness

    vm.swappiness=10
    
    • 1

    如果系统的内存不足,则需要根据物理内存的大小来设置交换空间的大小。

    三、free -h -s 2 -c 2

    显示所有的内存信息,每隔两秒显示一次,一共显示两次。

  • 相关阅读:
    速卖通:按关键字搜索商品 API
    Django 与图表的数据交互
    软考笔记--信息系统架构
    ReactPortals传送门
    【路径规划-多式联运】基于遗传算法求解多式联运冷链运输成本优化问题附matlab代码
    GAN 的理想损失值应该是多少?(Make Your First GAN With PyTorch 附录 A)
    揭秘BSN-DDC网络的自建城市算力中心
    简单神经网络讲解视频,简单神经网络讲解教程
    Uniapp矩阵评分组件
    Kubernetes最小单元Pod的生命周期
  • 原文地址:https://blog.csdn.net/wangzhongshun/article/details/132946152