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