• Linux学习笔记:free和top命令查看系统内存使用情况


    free 命令

    Linux free 命令用于显示内存状态。

    free 指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。

    语法:

    free [-bkmotV] [-s <间隔秒数>]
    

    参数说明:

    -b:以 Byte 为单位显示内存使用情况
    -k:以 KB 为单位显示内存使用情况
    -m:以 MB 为单位显示内存使用情况
    -h:以合适的单位显示内存使用情况,最大为三位数,自动计算对应的单位值。单位有:
    
    B = bytes
    K = kilos
    M = megas
    G = gigas
    T = teras
    
    -s:持续观察内存使用状况
    -t:显示内存总和列
    -V:显示版本信息
    

    其中,最常使用 free -h,以适于人类可读方式显示内存信息。-h 与其他命令最大不同是 -h 选项会在数字后面加上适于人类可读的单位。

    实例:

    # free // 显示内存使用情况
                 total       used       free     shared    buffers     cached
    Mem:      32948032   31913588    1034444          0     136048   28992904
    -/+ buffers/cache:    2784636   30163396
    Swap:      8193140    1071708    7121432
    
    # free // 周期性查询内存使用情况 每5s执行一次命令
                 total       used       free     shared    buffers     cached
    Mem:      32948032   31913588    1034444          0     136048   28992904
    -/+ buffers/cache:    2784636   30163396
    Swap:      8193140    1071708    7121432
    root@:[/home/iod_etl/BDC]free -s 5
                 total       used       free     shared    buffers     cached
    Mem:      32948032   31914832    1033200          0     136256   29001032
    -/+ buffers/cache:    2777544   30170488
    Swap:      8193140    1071708    7121432
    
                 total       used       free     shared    buffers     cached
    Mem:      32948032   31915684    1032348          0     136268   29001020
    -/+ buffers/cache:    2778396   30169636
    Swap:      8193140    1071708    7121432
    
                 total       used       free     shared    buffers     cached
    Mem:      32948032   31915992    1032040          0     136280   29002476
    -/+ buffers/cache:    2777236   30170796
    Swap:      8193140    1071708    7121432
    ##  使用 -s 命令每隔一段时间输出一次内存的使用情况
    ## 直到按下 ctrl + C 
    

    结果解读:

    • total:表示总计物理内存大小
    • used:表示已用内存
    • free:表示可用内存
    • shared:表示多个进程共享的内存总额
    • buffers/cached:表示磁盘缓存大小
    • avaiable:可用内存

    free 命令背后是复杂的操作系统概念,有一定的了解即可。

    top 命令

    Linux top 命令用于实时显示 process 的动态。

    所有使用者都可以使用。

    top 命令是 Linux 下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于 Windows 的任务管理器。

    语法:

    top [-] [d delay] [q] [c] [S] [s] [i] [n] [b]
    

    参数说明:

    d : 改变显示的更新速度,或是在交谈式指令列 (interactive command) 按 s
    q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行
    c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来
    s : 安全模式,将交谈式指令取消, 避免潜在的危机
    i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程
    n : 更新的次数,完成后将会退出 top
    b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内
    

    实例:

    # top // 显示进程信息
    root@:top
    top - 17:39:37 up 1007 days,  7:38,  4 users,  load average: 0.30, 0.39, 0.46
    Tasks: 691 total,   1 running, 689 sleeping,   0 stopped,   1 zombie
    Cpu(s):  0.0%us,  0.1%sy,  0.0%ni, 99.6%id,  0.1%wa,  0.1%hi,  0.1%si,  0.0%st
    Mem:  32948032k total, 31899900k used,  1048132k free,   139076k buffers
    Swap:  8193140k total,  1071708k used,  7121432k free, 28981768k cached
    
      PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                          
    19666 xx  15   0 50908 1152  560 S  1.3  0.0 226:18.18 vsftpd                                                           
    31288 root      15   0 13136 1572  808 R  1.0  0.0   0:00.18 top                                                              
     1917 xx  15   0 50908 1112  560 S  0.7  0.0  63:36.78 vsftpd                                                           
     1923 xx  15   0 50908 1156  560 S  0.7  0.0 225:32.57 vsftpd 
    

    清除缓存

    清理已使用缓存(buff/cache),可以使用以下命令:

    ## 清理 buff/cache
    
    sync; echo 3 > /proc/sys/vm/drop_caches 
    

    参考链接1:Linux free命令

    参考链接2:linux free命令详解(一)

    参考链接3:linux下free命令详解

    参考链接4:Linux top命令

    参考链接5:Linux top命令详解

  • 相关阅读:
    POJ 1321:棋盘问题
    POJ 2251:Dungeon Master
    POJ 3438:Look and Say
    POJ 1094:Sorting It All Out拓扑排序之我在这里挖了一个大大的坑
    杭电1285--确定比赛名次(拓扑排序)
    南阳67--三角形面积
    南阳38--布线问题
    杭电1050--Moving Tables(区间覆盖)
    杭电1217--Arbitrage(Spfa)
    杭电1719--Friend(找规律)
  • 原文地址:https://www.cnblogs.com/hider/p/12753757.html
Copyright © 2020-2023  润新知