返回

你想知道 Linux 内存使用量是否耗尽?那就用好这 5 个命令!

后端

在 Linux 操作系统中,内存是一个关键资源,用于存储正在运行的程序和操作系统本身的数据。如果系统的内存使用量过高,可能会导致性能下降、应用程序崩溃或者系统崩溃。因此,了解如何检查 Linux 内存使用量非常重要。

检查 Linux 内存使用量的方法有很多,这里介绍 5 个常用的命令:

1. free 命令

free 命令是最常用的查看内存使用量的命令之一。它可以显示出系统的总内存、已用内存、空闲内存和内存缓冲区的大小。

# free -m
             total       used       free     shared    buffers     cached
Mem:          3969      3256       713          0        26       429
-/+ buffers/cache:      2799      1170
Swap:         3952        15      3937

在这个例子中,系统的总内存为 3969 MB,已用内存为 3256 MB,空闲内存为 713 MB,内存缓冲区大小为 26 MB,缓存大小为 429 MB。

2. top 命令

top 命令可以实时显示系统的进程列表,以及每个进程的内存使用量。

# top -o %MEM
PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
12345 username  20   0  100340  50724  20200 S  0.0  13.8   0:00.97 chrome
23456 username  20   0   52612  13944   4144 R  0.0   3.8   0:00.32 firefox
34567 username  20   0   33680   6892   1588 S  0.0   1.9   0:00.09 thunderbird

在这个例子中,chrome 进程使用了最多的内存,为 13.8%。

3. vmstat 命令

vmstat 命令可以显示系统的内存统计信息,包括内存使用量、内存交换量和内存分页量。

# vmstat 1 5
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
 0  0      0  117800  13528  251828    0    0     0     0   43  140  0  0 100  0
 0  0      0  117676  13528  251832    0    0     0     0   44  140  0  0 100  0
 0  0      0  117652  13528  251832    0    0     0     0   44  140  0  0 100  0
 0  0      0  117628  13528  251832    0    0     0     0   44  140  0  0 100  0
 0  0      0  117604  13528  251832    0    0     0     0   44  140  0  0 100  0

在这个例子中,free 列显示了系统的空闲内存大小,为 117604 KB。

4. ps 命令

ps 命令可以显示系统的进程列表,以及每个进程的内存使用量。

# ps -eo pid,user,rss,vsz,cmd
PID USER       RSS VSZ COMMAND
12345 username  20480 51200 chrome
23456 username   8192 16384 firefox
34567 username   4096  8192 thunderbird

在这个例子中,chrome 进程使用了最多的内存,为 20480 KB。

5. meminfo 命令

meminfo 命令可以显示系统的内存信息,包括内存总量、内存使用量、内存空闲量、内存交换量等。

# cat /proc/meminfo
MemTotal:       4096 kB
MemFree:        2048 kB
Buffers:        512 kB
Cached:         1024 kB
SwapCached:      0 kB
Active:         2048 kB
Inactive:       1024 kB
Active(anon):    1024 kB
Inactive(anon):  512 kB
SwapTotal:      4096 kB
SwapFree:       3072 kB
Dirty:           0 kB
Writeback:       0 kB
AnonPages:      2048 kB
Mapped:         1024 kB
Shmem:           512 kB
Slab:            256 kB
SReclaimable:    128 kB
SUnreclaim:      128 kB
KernelStack:     1024 kB
PageTables:      256 kB
NFS_Unstable:    0 kB
Bounce:          0 kB
WritebackTmp:    0 kB
CommitLimit:    8192 kB
Committed_AS:   4096 kB
VmallocTotal:   16384 kB
VmallocUsed:    8192 kB
VmallocChunk:   4096 kB

在这个例子中,MemTotal 列显示了系统的内存总量,为 4096 KB。

希望这些命令能够帮助您了解 Linux 内存使用情况。