- free命令
- total:总计物理内存的大小
- used:已使用多大
- free:可用有多少
- shared:多个进程共享的内存总额
- buff/cached:磁盘缓存的大小
从输出结果可以看到,该系统共 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
2. top命令
- PID:进程的ID
- USER:进程所有
- PR:进程的优先级别,越小越优先被执
- VIRT:进程占用的虚拟内
- RES:进程占用的物理内
- SHR:进程使用的共享内
- S:进程的状态,S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负
- %CPU:进程占用CPU的使用
- %MEM:进程使用的物理内存和总内存的百分
- TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值
- COMMAND:进程启动命令名称
3. 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
字段说明:
-
Procs(进程):
r: 运行队列中进程数量
b: 等待IO的进程数量
-
Memory(内存):
swpd: 使用虚拟内存大小
free: 可用内存大小
buff: 用作缓冲的内存大小
cache: 用作缓存的内存大小
-
Swap:
si: 每秒从交换区写到内存的大小
so: 每秒写入交换区的内存大小
-
IO:(现在的Linux版本块的大小为1024bytes)
bi: 每秒读取的块数
bo: 每秒写入的块数
-
系统:
in: 每秒中断数,包括时钟中断。【interrupt】
cs: 每秒上下文切换数。 【count/second】
-
CPU(以百分比表示):
us: 用户进程执行时间(user time)
sy: 系统进程执行时间(system time)
id: 空闲时间(包括IO等待时间),中央处理器的空闲时间 。以百分比表示。
wa: 等待IO时间
对于内存的监控,我们只需要重点关注 swpd、si 和 so 这 3 列。从此输出结果可以看出,当前系统中,虚拟内存没有使用,硬盘和内存之间没有交换数据,可见内存资源处于空闲状态。
- cat /proc/meminfo
- sar命令
sar 命令也可以用来监控 Linux 的内存使用状况,通过“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 一项就可以得知,当前系统中的内存资源充足。