Linux 系统查看内存命令指南292


在 Linux 系统中,实时监控和管理内存至关重要。通过使用各种命令,系统管理员可以深入了解内存使用情况,诊断问题并优化性能。以下是查看 Linux 系统内存的关键命令:

1. free

free 命令提供有关系统内存使用情况的概况,包括已用内存、空闲内存、缓冲区和缓存。
$ free -m
总计 已用 空闲 共享 缓冲 缓存
Mem: 16 12 4 0 0 1
-/+ buffers/cache: 11 5

2. vmstat

vmstat 命令显示有关虚拟内存、页面换入和换出以及 CPU 使用情况的详细统计信息。
$ vmstat 1
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 2148 11284 57 2236 0 0 1 3 5 11 1 10 79 1 0

3. top

top 命令提供有关正在运行进程的实时信息,包括它们使用的内存量。
$ top -o %MEM
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
9287 root 20 0 316392 260812 22236 S 5.0 1.2 23:55.56 top
9796 root 20 0 1130240 202012 41844 S 3.0 0.9 1:02.67 vsftpd
8787 mysql 20 0 7255712 480820 18708 S 0.0 2.8 1:19.89 mysqld

4. ps

ps 命令列出正在运行的进程,并提供有关其内存使用的信息。
$ ps -eo pid,user,cmd,rss,pcpu,pmem
PID USER CMD RSS %CPU %MEM
9287 root top 261M 5.0 1.2%
9796 root vsftpd 202M 3.0 0.9%
8787 mysql mysqld 481M 0.0 2.8%

5. grep

grep 命令可以过滤命令输出,仅显示与特定关键词匹配的行。
$ free -m | grep Mem
总计 已用 空闲 共享 缓冲 缓存
Mem: 16 12 4 0 0 1

6. sar

sar 命令收集和报告系统活动信息,包括内存使用情况。
$ sar -r 1 3
Average Memory info:
15:01:41 PM kbmemfree kbmemused %memused kbbuffers kbcached
15:01:42 PM 4032596 1220176 23.15 132,112 427,296
15:01:43 PM 4020472 1232420 23.34 132,656 427,688

7. dmesg

dmesg 命令显示内核缓冲区的日志消息,可以用于识别与内存相关的错误或警告。
$ dmesg | grep memory
[ 0.000000] Memory: 16384K/16384K available (1 pages at 4096K)
[ 0.000000] [mem 0x1000-0x1000000]
[ 0.000000] [mem 0xd000000-0x10000000]

8. mtr

mtr 命令是用于网络故障排除的工具,但它也可以显示有关网络应用程序使用的内存量的信息。
$ mtr
Host: (172.217.19.70)
...
Send rate: 11404 packets/sec
Recv rate: 11400 packets/sec
Loss rate: 0.03%
Sent: 114298, Rcvd: 114284, Loss: 14
SntBytes: 119329664, RcvBytes: 76881032
Total bytes: 196210696, Speed: 1.78 Gbps
Max speed: 1.78 Gbps
Min speed: 1.78 Gbps
Application: 38752 bytes in, 34392 bytes out

9. meminfo

meminfo 命令从 /proc/meminfo 文件中提取有关内存使用情况的详细统计信息。
$ cat /proc/meminfo
MemTotal: 16384 kB
MemFree: 4032 kB
MemAvailable: 12200 kB
Buffers: 132 kB
Cached: 427 kB

10. swapon

swapon 命令显示系统中启用的所有交换分区和文件。
$ swapon -s
Filename Type Size Used Priority
/swapfile file 1024M 0B -2

11. lshw

lshw 命令提供有关系统硬件的信息,包括已安装的内存量。
$ lshw -class memory
*-memory
description: System memory
physical id: 0
size: 16GiB

12. vm_stat

vm_stat 命令是 vmstat 命令的图形版本,提供有关虚拟内存和 CPU 使用情况的可视化表示。
$ vm_stat 1
k total free used buff cache
swap 2 512 512 0 0 0
slab 0 344 344 0 0 0
page 1 16384 16372 12 0 12
vmap 0 64 64 0 0 0
anon 2 5324 1716 3608 0 0
file 0 4096 4096 0 0 0
shmem 0 32 32 0 0 0
sock 0 28 28 0 0 0
0 26216 23176 3040 0 3040

13. smem

smem 命令提供有关系统内存的详细统计信息,包括页面映射和物理内存分配。
$ smem -m
Total amount of memory: 16384 kB
Amount of free memory: 5404 kB
Amount of memory in buffers: 132 kB
Amount of cached memory: 427 kB
Amount of swap space: 1024 MB
Amount of free swap space: 1024 MB

14. numastat

numastat 命令显示有关非统一内存访问 (NUMA) 系统中的内存使用情况和节点分配的信息。
$ numastat
Node 0
numa_hit numa_miss numa_foreign interleave_hit interleave_miss local_node other_node
570224160 585075576 12297357

2024-11-23


上一篇:iOS 系统 App:深入了解其设计、实现和最佳实践

下一篇:Linux 系统安装教程:使用 LVM 管理磁盘