Linux 系统内存管理命令详解312
在 Linux 系统中,内存是系统中最重要的资源之一,它直接影响着系统的性能和稳定性。因此,对系统内存进行有效的管理和监控至关重要。本文将介绍 Linux 系统中常用的查看系统内存命令,这些命令可以帮助管理员了解内存的使用情况,并及时发现和解决内存问题。
free 命令
free 命令是 Linux 系统中最常用的查看内存信息的命令。它可以显示系统中总内存、已用内存、空闲内存、共享内存、缓存内存等信息。free 命令的输出结果如下:
```total used free shared buff/cache availableMem: 8192 5372 1796 720 1024 2284Swap: 4096 2048 2048```
其中,各列含义如下:
* total: 系统总内存大小* used: 已用内存大小* free: 空闲内存大小* shared: 共享内存大小* buff/cache: 缓存内存大小* available: 可用内存大小available 表示系统中可以立即分配给新进程的内存大小。如果 available 内存较小,则系统可能会出现性能问题。
vmstat 命令
vmstat 命令可以显示系统的虚拟内存统计信息,包括内存使用情况、进程信息、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 0 0 0 1768 1024 2284 0 0 0 0 43 42 0 0 100 0 0```
其中,各列含义如下:
* procs: 进程信息,包括运行队列中进程数量、阻塞进程数量、可交换进程数量* memory: 内存信息,包括空闲内存大小、缓冲内存大小、缓存内存大小* swap: 交换分区信息,包括已用交换分区大小、空闲交换分区大小* io: I/O 统计信息,包括每秒块设备读取次数、每秒块设备写入次数* system: 系统统计信息,包括每秒中断次数、每秒上下文切换次数* cpu: CPU 利用率信息,包括用户态 CPU 利用率、系统态 CPU 利用率、空闲 CPU 利用率、等待 I/O 的 CPU 利用率、被窃取的 CPU 利用率vmstat 命令可以指定输出间隔和次数,例如:vmstat 2 5 表示每 2 秒输出一次,输出 5 次。
top 命令
top 命令可以动态显示系统中正在运行的进程的资源使用情况,包括内存使用情况、CPU 利用率等。top 命令的输出结果如下:
```top - 17:33:31 up 26 min, 2 users, load average: 0.26, 0.25, 0.22Tasks: 169 total, 3 running, 166 sleeping, 0 stopped, 0 zombie%Cpu(s): 2.1 us, 1.3 sy, 0.0 ni, 96.6 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 stKiB Mem: 8192 total, 5364 used, 2828 free, 720 buffersKiB Swap: 4096 total, 2048 used, 2048 free. 344704KiB cached Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 2236 www-data 20 0 318252 12644 8644 R 11.3 0.2 27:37.66 php-fpm: pool www 2142 root 20 0 228532 4544 3872 S 0.7 0.1 0:18.67 Xorg 2639 root 20 0 129792 2848 1592 S 0.0 0.0 0:01.77 dhclient 2113 root 20 0 132764 2236 1560 S 0.0 0.0 0:00.56 irqbalance 2224 www-data 20 0 312636 11800 8284 R 0.0 0.1 0:11.99 php-fpm: pool www```
其中,各列含义如下:
* PID: 进程 ID* USER: 进程所有者* PR: 进程优先级* NI: 进程 nice 值* VIRT: 进程虚拟内存大小* RES: 进程驻留内存大小* SHR: 进程共享内存大小* S: 进程状态* %CPU: 进程 CPU 利用率* %MEM: 进程内存利用率* TIME+: 进程运行时间top 命令可以指定更新间隔,例如:top -d 2 表示每 2 秒更新一次。
ps 命令
ps 命令可以显示系统中正在运行的进程的信息,包括内存使用情况。ps 命令的输出结果如下:
```USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDroot 1 0.0 0.1 10252 1008 ? Ss 17:33 0:00 initroot 3 0.0 0.0 8640 816 ? S 17:33 0:00 udevdroot 5 0.0 0.0 6688 708 ? S 17:33 0:00 acpidroot 7 0.0 0.0 2432 684 ? S 17:33 0:00 ksoftirqd/0root 9 0.0 0.0 1048 612 ? S 17:33 0:00 rcu_schedroot 11 0.0 0.0 1492 588 ? S 17:33 0:00 rcu_bh```
其中,各列含义如下:
* USER: 进程所有者* PID: 进程 ID* %CPU: 进程 CPU 利用率* %MEM: 进程内存利用率* VSZ: 进程虚拟内存大小* RSS: 进程驻留内存大小* TTY: 进程控制终端* STAT: 进程状态* START: 进程启动时间* TIME: 进程运行时间* COMMAND: 进程命令行ps 命令可以指定进程信息显示格式,例如:ps -aux 表示显示所有进程的详细信息。
smem 命令
smem 命令可以显示系统中物理内存的详细信息,包括内存使用情况、内存分配情况等。smem 命令的输出结果如下:
``` PID Size RSS Shared_Clean Shared_Dirty Private Dirty Anonymous Slab Swap 2236 137072 12636 3628 0 90436 11196 90436 1048 256 2142 79800 4544 2792 0 49856 3328 49856 1048 256 2639 31744 2848 1528 0 27360 2048 27360 896 256 2113 25636 2236 1464 0 2217
2024-11-06