1、free命令
free 命令会显示系统内存的使用情况,包括物理内存、交换内存(swap)和内核缓冲区内存等。
$ free
total used free shared buff/cache available
Mem: 32946324 2489392 11422656 1622872 19034276 28352888
Swap: 0 0 0
释义:
Mem:内存使用情况。
Swap:交换空间(虚拟内存)使用情况。
total:系统总共可用物理内存、交换空间大小。
used:已经被使用的物理内存、交换空间大小。
free:剩余可用物理内存、交换空间大小。
shared:被共享使用的物理内存大小。
buff/cache:被 buffer 和 cache 使用的物理内存大小。
available:还可以被应用程序使用的物理内存大小。
常见用法:
free -h //以更友好的方式显示,会以K、M、G为单位来显示
free -h -s 3 //以一定时间间隔重复的输出,这个命令是每3秒输出一次
free 命令中的信息都来自于 /proc/meminfo 文件。
2、vmstat命令
vmstat 是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、CPU活动进行监控,是对系统的整体情况进行的统计。
$ vmstat
procs -----------memory----------- --swap-- --io-- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 14376368 161976 1130836 0 0 0 3 2 2 0 0 100 0 0
与内存使用情况相关的是memory列和swap列,我们只看这两列。
memory列
swpd:使用的虚拟内存大小。
free:空闲物理内存大小。
buff:buffer cache内存大小。
cache:page cache的内存大小。
swap列
si:每秒从交换区读入到内存的大小,由磁盘调入内存(单位:kb/s)
so:每秒从内存写出到交换区的大小,由内存调入磁盘(单位:kb/s)
常见用法:
vmstat 1 //每隔1s打印一次
vmstat 1 5 //每隔1秒打印一次,打印五次
vmstat -s //显示内存相关统计信息及多种系统活动数量
3、top命令
使用top命令,可以查看正在运行的进程和系统负载信息,包括cpu负载、内存使用、各个进程所占系统资源等,top命令以一定频率动态更新这些统计信息。
top - 10:45:21 up 211 days, 17:14, 2 users, load average: 0.08, 0.09, 0.03
Tasks: 228 total, 1 running, 227 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.4%us, 0.1%sy, 0.1%ni, 99.4%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 32880232k total, 22032060k used, 10848172k free, 569680k buffers
Swap: 0k total, 0k used, 0k free, 17771208k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
9757 root 20 0 15160 1224 836 R 2.0 0.0 0:00.01 top
1 root 20 0 19364 1644 1312 S 0.0 0.0 2:06.03 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.30 kthreadd
3 root RT 0 0 0 0 S 0.0 0.0 0:02.75 migration/0
4 root 20 0 0 0 0 S 0.0 0.0 2:04.41 ksoftirqd/0
5 root RT 0 0 0 0 S 0.0 0.0 0:00.00 stopper/0
6 root RT 0 0 0 0 S 0.0 0.0 0:39.92 watchdog/0
7 root RT 0 0 0 0 S 0.0 0.0 0:01.44 migration/1
8 root RT 0 0 0 0 S 0.0 0.0 0:00.00 stopper/1
9 root 20 0 0 0 0 S 0.0 0.0 1:23.26 ksoftirqd/1
10 root RT 0 0 0 0 S 0.0 0.0 0:31.05 watchdog/1
11 root RT 0 0 0 0 S 0.0 0.0 0:02.06 migration/2
12 root RT 0 0 0 0 S 0.0 0.0 0:00.00 stopper/2
13 root 20 0 0 0 0 S 0.0 0.0 0:45.78 ksoftirqd/2
14 root RT 0 0 0 0 S 0.0 0.0 0:29.91 watchdog/2
15 root RT 0 0 0 0 S 0.0 0.0 0:10.61 migration/3
16 root RT 0 0 0 0 S 0.0 0.0 0:00.00 stopper/3
17 root 20 0 0 0 0 S 0.0 0.0 1:57.03 ksoftirqd/3
18 root RT 0 0 0 0 S 0.0 0.0 0:32.77 watchdog/3
19 root RT 0 0 0 0 S 0.0 0.0 0:01.82 migration/4
20 root RT 0 0 0 0 S 0.0 0.0 0:00.00 stopper/4
21 root 20 0 0 0 0 S 0.0 0.0 1:58.64 ksoftirqd/4
22 root RT 0 0 0 0 S 0.0 0.0 0:32.96 watchdog/4
23 root RT 0 0 0 0 S 0.0 0.0 0:03.28 migration/5
24 root RT 0 0 0 0 S 0.0 0.0 0:00.00 stopper/5
25 root 20 0 0 0 0 S 0.0 0.0 0:50.67 ksoftirqd/5
26 root RT 0 0 0 0 S 0.0 0.0 0:30.28 watchdog/5
27 root RT 0 0 0 0 S 0.0 0.0 0:06.60 migration/6
28 root RT 0 0 0 0 S 0.0 0.0 0:00.00 stopper/6
反映系统内存使用状况的是下面这两行:
Mem: 32880232k total, 22032060k used, 10848172k free, 569680k buffers
Swap: 0k total, 0k used, 0k free, 17771208k cached
Mem行是物理内存使用情况,分别是:物理内存总量,已使用的物理内存总量,空闲物理内存总量,用作内核缓存区的内存量。
Swap行是交换区使用情况,分别是:交换区总量,已使用的交换区总量,空闲交换区总量,缓冲的交换区总量。
Top命令的下侧区域显示的是各个进程使用的系统资源统计信息,内存相关列如下:
- VIRT列:进程使用的虚拟内存总量,单位kb。
- RES列:进程使用的、未被换出的物理内存大小,单位kb。
- SHR列:共享内存大小,单位kb。
- %MEM 列:进程使用的物理内存百分比。
4、cat /proc/meminfo
/proc/meminfo是了解Linux系统内存使用状况的主要接口,我们最常用的”free”、”vmstat”等命令就是通过它获取数据的。/proc/meminfo所包含的信息比”free”等命令要丰富得多,但也很复杂,不再一一解释了。感兴趣的话可以看看这篇文章:http://linuxperf.com/?p=142,对 /proc/meminfo 有较详细的解释。
$ cat /proc/meminfo
MemTotal: 16430636 kB
MemFree: 14376492 kB
MemAvailable: 15298732 kB
Buffers: 161976 kB
Cached: 1022440 kB
SwapCached: 0 kB
Active: 1369780 kB
Inactive: 438696 kB
Active(anon): 624376 kB
Inactive(anon): 49444 kB
Active(file): 745404 kB
Inactive(file): 389252 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 60 kB
Writeback: 0 kB
AnonPages: 624068 kB
Mapped: 88140 kB
Shmem: 49752 kB
Slab: 108076 kB
SReclaimable: 82864 kB
SUnreclaim: 25212 kB
KernelStack: 4464 kB
PageTables: 10480 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 8215316 kB
Committed_AS: 1811204 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 34780 kB
VmallocChunk: 34359695100 kB
HardwareCorrupted: 0 kB
AnonHugePages: 182272 kB
CmaTotal: 0 kB
CmaFree: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 169832 kB
DirectMap2M: 8218624 kB
DirectMap1G: 10485760 kB
5、 ps aux命令
ps aux 命令可以查看系统中各个进程的运行情况,包括了进程占用的内存,%MEM 列就是各个进程的内存占用百分比。
$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1231 0.9 2.2 1368496 375824 ? SNl Jun21 346:39 ./bcm-agent
bls 6891 0.1 0.9 2892024 159516 ? Sl Jun21 55:29 /opt/bls/lib/jre/bin/java -Duser.language=en_us -Xmx500m -XX:+UseParallelGC -XX:+UseParallelOldGC -
root 389 0.0 0.2 96376 46212 ? Ss Jun21 0:14 /usr/lib/systemd/systemd-journald
root 1245 0.0 0.2 1200080 40200 ? Sl Jun21 19:48 /opt/hosteye/bin/hosteye --is_child_mode=true --is_console_mode=false --start_mode=0
root 1199 0.0 0.1 288132 28188 ? Ssl Jun21 2:06 /usr/sbin/rsyslogd -n
root 898 0.0 0.1 573840 17152 ? Ssl Jun21 5:08 /usr/bin/python -Es /usr/sbin/tuned -l -P
参考:
https://www.cnblogs.com/ultranms/p/9254160.html
https://www.cnblogs.com/beginner-boy/p/8067130.html
https://www.cnblogs.com/new-journey/p/10524676.html
https://www.cnblogs.com/zhuiluoyu/p/6154898.html
https://www.cnblogs.com/xd502djj/archive/2011/03/01/1968041.html
https://www.cnblogs.com/jiffies/articles/2106456.html
https://blog.csdn.net/zhuoya_/article/details/81049967
来源:oschina
链接:https://my.oschina.net/u/4383551/blog/3463555