Linux查看内存使用
Linux查看内存使用
- top
- free
- vmstat
- /proc/meminfo 文件(重要!所有命令最终都是通过该文件获取系统内存使用情况的)
vmstat

- procs:
- r (runnable): 处于运行或等待运行状态的进程数。
- b (blocked): 处于不可中断睡眠状态的进程数,通常是等待 I/O 完成。
- memory:
- swpd (swap used): 已使用的交换空间大小(以 KB 为单位)。
- free (free memory): 空闲内存大小(以 KB 为单位)。
- buff (buffers): 用作缓冲区的高速缓存的内存大小(以 KB 为单位)。
- cache (cache): 用作页面高速缓存的内存大小(以 KB 为单位)。
- swap:
- si (swap in): 每秒从磁盘交换到内存的 KB 数。
- so (swap out): 每秒从内存交换到磁盘的 KB 数。
- io:
- bi (blocks in): 每秒从块设备接收的块数。
- bo (blocks out): 每秒发送到块设备的块数。
- system:
- in (interrupts): 每秒中断数,包括时钟中断。
- cs (context switches): 每秒上下文切换数。
- cpu:
- us (user): 用户进程占用 CPU 的百分比。
- sy (system): 系统进程占用 CPU 的百分比。
- id (idle): CPU 空闲的百分比。
- wa (wait): CPU 等待 I/O 的百分比。
- st (steal): 被虚拟化环境窃取的 CPU 百分比。
/proc/meminfo 文件
[root@localhost ~]# cat /proc/meminfo
MemTotal: 3714660 kB
MemFree: 3177016 kB
MemAvailable: 3242452 kB
Buffers: 2708 kB
Cached: 255136 kB
SwapCached: 0 kB
Active: 141640 kB
Inactive: 178340 kB
Active(anon): 51844 kB
Inactive(anon): 19408 kB
Active(file): 89796 kB
Inactive(file): 158932 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 2097148 kB
SwapFree: 2097148 kB
Zswap: 0 kB
Zswapped: 0 kB
Dirty: 0 kB
Writeback: 0 kB
AnonPages: 62136 kB
Mapped: 40020 kB
Shmem: 9116 kB
KReclaimable: 40960 kB
Slab: 95164 kB
SReclaimable: 40960 kB
SUnreclaim: 54204 kB
KernelStack: 4752 kB
PageTables: 1444 kB
SecPageTables: 0 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 3954476 kB
Committed_AS: 185864 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 54176 kB
VmallocChunk: 0 kB
Percpu: 48128 kB
HardwareCorrupted: 0 kB
AnonHugePages: 14336 kB
ShmemHugePages: 0 kB
ShmemPmdMapped: 0 kB
FileHugePages: 0 kB
FilePmdMapped: 0 kB
CmaTotal: 0 kB
CmaFree: 0 kB
Unaccepted: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
Hugetlb: 0 kB
DirectMap4k: 139072 kB
DirectMap2M: 3006464 kB
DirectMap1G: 3145728 kB
-
核心内存信息:
- MemTotal: 系统总内存大小(以 kB 为单位)。
- MemFree: 系统空闲内存大小(以 kB 为单位)。
- MemAvailable: 系统可用内存大小(以 kB 为单位)。这个值估计了系统在不使用交换空间的情况下,可以立即用于新应用程序的内存量。
- Buffers: 用于块设备(如磁盘)缓冲的内存大小(以 kB 为单位)。
- Cached: 用于文件系统缓存的内存大小(以 kB 为单位)。
- SwapCached: 已经被交换到交换空间,但是仍然被缓存在内存中的内存大小。
-
交换空间信息:
- SwapTotal: 系统总交换空间大小(以 kB 为单位)。
- SwapFree: 系统空闲交换空间大小(以 kB 为单位)。
-
活动和非活动内存:
- Active: 最近被使用的内存大小。
- Inactive: 最近不常被使用的内存大小。
- Active(anon): 活动的匿名内存(例如,应用程序的堆栈)。
- Inactive(anon): 非活动的匿名内存。
- Active(file): 活动的文件缓存内存。
- Inactive(file): 非活动的文件缓存内存。
-
其他内存信息:
- Unevictable: 不能被回收的内存。
- Mlocked: 被 mlock() 系统调用锁定的内存。
- Dirty: 等待写入磁盘的脏页。
- Writeback: 正在被写入磁盘的内存。
- AnonPages: 匿名内存页(例如,应用程序的堆栈)。
- Mapped: 映射的文件内存。
- Shmem: 共享内存。
- KReclaimable: 可回收的内核内存。
- Slab: 内核 slab 分配器使用的内存。
- SReclaimable: 可回收的 slab 内存。
- SUnreclaim: 不可回收的 slab 内存。
- KernelStack: 内核堆栈使用的内存。
- PageTables: 页表使用的内存。
- CommitLimit: 系统承诺可以分配的内存总量。
- Committed_AS: 当前已承诺的内存量。
- VmallocTotal: 内核 vmalloc 区域的总大小。
- VmallocUsed: 内核 vmalloc 区域的已用大小。
- VmallocChunk: 可用的最大 vmalloc 连续块。
- AnonHugePages: 匿名大页。
- HugePages_Total: 系统配置的大页总数。
- HugePages_Free: 系统空闲的大页数。
- Hugepagesize: 大页的大小。
- DirectMap4k, DirectMap2M, DirectMap1G: 直接映射的内存大小。
-
关键概念:
- 内存缓存 (Cache): Linux 系统使用内存缓存来提高文件系统性能。
- 交换空间 (Swap): 当物理内存不足时,系统会将不常用的内存页交换到磁盘上的交换空间。
- 大页 (Huge Pages): 大页是一种提高内存性能的技术。

浙公网安备 33010602011771号