10.7 free命令

时间:2022-04-27
本文章向大家介绍10.7 free命令,主要内容包括监控系统状态、小常识、swap部分、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。

监控系统状态

  • free 查看内存使用情况
  • free -m / -g / -h
  • buffer/cache区别
  • 公式:total=used+free+buff/cache
  • avaliable包含free和buffer/cache剩余部分

free命令

  • free命令,查看内存使用情况
    • 在centos7和centos6中显示的结果是不同的
    • 在centos7中,则更加直观
  • 默认单位:kb
  • 共有三行,我们需要关注的是第二行,内存的使用情况
    • 第一行,是说明
    • 第二行,是内存的使用情况
    • 第三行,是swap交换分区的使用情况
[root@localhost ~]# free
             total       used       free     shared    buffers     cached
Mem:       1010860     354592     656268       6824        692     192560
-/+ buffers/cache:     161340     849520
Swap:      2097148          0    2097148
[root@localhost ~]# 
  • free -m 指定单位兆
[root@localhost ~]# free -m
             total       used       free     shared    buffers     cached
Mem:           987        347        639          6          0        188
-/+ buffers/cache:        158        828
Swap:         2047          0       2047
[root@localhost ~]# 
  • free -h 在具体的数字后面加上单位——>更加直观显示
[root@localhost ~]# free -h
             total       used       free     shared    buffers     cached
Mem:          987M       347M       639M       6.7M       692K       188M
-/+ buffers/cache:       158M       828M
Swap:         2.0G         0B       2.0G
[root@localhost ~]# 
  • 第一列,是总共有多大
  • 第二列,使用了多大
  • 第三列,剩余多大
    • 在这里会发现,used+free不等于total
      • 这是因为在linux操作系统,会把你的内存预分配一部分出来,分配给 buff 和 cache ,
  • 第四列,buff 表示 缓冲
  • 第五列,cache 表示 缓存
    • 区分:数据的流向不同
      • 磁盘——>内存(cache)——>cpu
      • cpu——>内存(buff)——>磁盘
  • 第六列,是free内存 + 预分配的buff/cache内存还没用完的,就是available(在centos7.0版本中,不会显示available,版本太低)

小常识

  • 公式:total=used+free+buff/cache
  • avaliable包含free和buffer/cache剩余部分

swap部分

  • 当swap不够使用了,就会使用到used,再used跑满了,free剩余为0,那swap则肯定需要添加了
    • 然而添加swap并不是解决问题的方法,而是增加内存。swap不够使用了,说明内存不够了,或者说你的内存泄漏了,你的程序有BUG,需要去排查