linux学习

查看内存的常用工具

一、可以查看系统内存的工具有:free、top、htop、vmstat、ps aux、cat /proc/meminfo

优点 缺点
free 简单易用,提供了系统整体内存使用情况的概况 缺乏进程级别的详细信息,不能实时监控
top 提供了实时的进程级别的资源占用情况,包括内存、CPU 等 界面较为简陋,不够直观;不能进行历史数据的统计和分析
htop 提供了类似 top 的功能,但界面更友好,支持鼠标操作和更多交互式功能 相比 top,可能稍微占用更多系统资源
vmstat 提供了系统整体的虚拟内存统计信息,包括内存、交换空间、IO 等 输出格式相对较为简单,不能直接查看进程级别的信息
ps aux 提供了当前系统进程的详细信息,包括内存占用情况 不是专门用来查看内存信息的命令,需要结合其他命令来获取完整的内存使用情况
cat /proc/meminfo 直接读取内核内存信息,提供了系统整体的内存信息,包括物理内存和虚拟内存 输出内容较为庞大,需要用户自行解读

二、常用命令free与top介绍:

  1. free:显示的是整个系统的内存使用情况

    # 注意不同版本的free输出可能会有所不同
    $ free
                 total        used        free      shared  buff/cache   available
    Mem:        8169348      263524     6875352         668     1030472     7611064
    Swap:             0           0           0
    • 这两行分别是物理内存 Mem 和交换分区 Swap 的使用情况;

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

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

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

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

    • 第五列,buff/cache 是缓存和缓冲区的大小;

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

  2. Top:提供了实时的进程级别的资源占用情况

    # 按下M切换到内存排序
    $ top
    ...
    KiB Mem :  8169348 total,  6871440 free,   267096 used,  1030812 buff/cache
    KiB Swap:        0 total,        0 free,        0 used.  7607492 avail Mem
    
     PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
     430 root      19  -1  122360  35588  23748 S   0.0  0.4   0:32.17 systemd-journal
    1075 root      20   0  771860  22744  11368 S   0.0  0.3   0:38.89 snapd
    1048 root      20   0  170904  17292   9488 S   0.0  0.2   0:00.24 networkd-dispat
       1 root      20   0   78020   9156   6644 S   0.0  0.1   0:22.92 systemd
    12376 azure     20   0   76632   7456   6420 S   0.0  0.1   0:00.01 systemd
    12374 root      20   0  107984   7312   6304 S   0.0  0.1   0:00.00 sshd
    ...
    • 顶端,也显示了系统整体的内存使用情况;

    • VIRT 是进程虚拟内存的大小,只要是进程申请过的内存,即便还没有真正分配物理内存,也会计算在内;

    • RES 是常驻内存的大小,也就是进程实际使用的物理内存大小,但不包括 Swap 和共享内存;

    • SHR 是共享内存的大小,比如与其他进程共同使用的共享内存、加载的动态链接库以及程序的代码段等;

    • %MEM 是进程使用物理内存占系统总内存的百分比

留言

您的邮箱地址不会被公开。 必填项已用 * 标注