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命令详解

原文地址:https://www.cnblogs.com/hider/p/12753757.html