• Linux查看内存使用情况方法汇总

    内存的管理和优化,是 Linux 系统性能优化的重要组成部分,换句话说,内存资源是否充足,会直接影响应用系统(包含操作系统和应用程序)的使用性能。

    本节将介绍几个系统命令,通过它们,可以快速查看 Linux 系统中内存的使用状况。

    Linux查看内存使用情况:free命令

    free 是监控 Linux 内存使用状况最常用的命令之一,有关该命令的基本用法,已经在《Linux free命令》一节中做了详细介绍,所以不再赘述,这里重点给大家讲解如何使用 free 命令查看系统内存的使用情况。

    下面是 free 命令在当前测试系统中的输出结果:

    [root@localhost  ~]# free -m
                 total       used       free     shared    buffers     cached
    Mem:          2004        573       1431          0         47        201
    -/+ buffers/cache:        323       1680
    Swap:         1983          0       1983

    从输出结果可以看到,该系统共 2GB 内存,其中系统空闲内存还有 1431MB,并且 swap 交换分区还未使用,因此可以判断出当前系统的内存资源还非常充足。

    除此之外,free 命令还可以实时地监控内存的使用状况,通过使用 -s 选项,可以实现在指定的时间段内不间断地监控内存的使用情况。例如:

    [root@localhost ~]# free -m -s 5
                 total       used       free     shared    buffers     cached
    Mem:          2004        571       1433          0         47        202
    -/+ buffers/cache:        321       1683
    Swap:         1983          0       1983
    
                 total       used       free     shared    buffers     cached
    Mem:          2004        571       1433          0         47        202
    -/+ buffers/cache:        321       1683
    Swap:         1983          0       1983
    #省略后续输出

    要想实现动态地监控内存使用状况,除了使用 free 命令提供的 -s 选项,还可以借助 watch 命令。通过给 watch 命令后面添加需要运行的命令,watch 就会自行重复去运行这个命令(默认 2 秒执行一次),例如:

    [root@localhost ~]# watch -n 3 -d free
    Every 3.0s: free                                        Tue Oct 29 03:05:43 2019
    
                 total       used       free     shared    buffers     cached
    Mem:       2052988     586504    1466484          0      49184     207360
    -/+ buffers/cache:     329960    1723028
    Swap:      2031608          0    2031608

    上面执行的命令中,-n 选项用于执行重复执行的间隔时间,-d 选项用于在显示数据时,高亮显示变动了的数据。

    Linux查看内存使用情况:vmstat命令

    vmstat 命令在监控系统内存方面的功能很强大,有关此命令的基本用法,已经在《Linux vmstat命令》一节中做了详细介绍,这里重点讲解如何使用此命令查看内存的使用状况。

    下面是执行 vmstat 命令的输出结果:

    [root@localhost ~]# vmstat 2 3
    procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
    r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
    0  0      0 1436128  53004 210744    0    0     7     0   13   14  0  0 100  0  0
    1  0      0 1436112  53004 210744    0    0     0     0  128  226  0  0 100  0  0
    0  0      0 1435988  53004 210744    0    0     0     0  144  220  1  0 99  0  0

    对于内存的监控,我们只需要重点关注 swpd、si 和 so 这 3 列。从此输出结果可以看出,当前系统中,虚拟内存没有使用,硬盘和内存之间没有交换数据,可见内存资源处于空闲状态。

    Linux查看内存使用情况:sar命令

    sar 命令也可以用来监控 Linux 的内存使用状况,通过“sar -r”组合可以查看系统内存和交换空间的使用率。

    有关 sar 命令的基本用法,可以阅读《Linux sar命令》一文做详细了解。

    如下是执行“sar -r”命令的输出结果:

    [root@localhost ~]# sar -r 2 3
    Linux 2.6.32-431.el6.x86_64 (localhost)  10/29/2019  _x86_64_ (8 CPU)
    
    04:54:20 AM kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit
    04:54:22 AM   1218760    834228     40.63     53228    424908    738312     18.08
    04:54:24 AM   1218744    834244     40.64     53228    424908    738312     18.08
    04:54:26 AM   1218712    834276     40.64     53228    424908    738312     18.08
    Average:      1218739    834249     40.64     53228    424908    738312     18.08

    此输出结果中,各个参数表示的含义如下:

    • kbmemfree:表示空闲的物理内存的大小;
    • kbmemeused:表示已使用的物理内存的大小;
    • %memused:表示已使用内存占总内存大小的百分比;
    • kbbuffers:表示缓冲区所使用的物理内存的大小;
    • kbcached:表示告诉缓存所使用的物理内存的大小;
    • kbcommit 和 %commit:分别表示当前系统中应用程序使用的内存大小和百分比;

    相比 free 命令,sar 命令的输出信息更加人性化,不仅给出了内存使用量,还给出了内存使用的百分比以及统计的平均值。比如说,仅通过 %commit 一项就可以得知,当前系统中的内存资源充足。

更多...

加载中...