free
、top
、htop
、vmstat
等,也可查看/proc/meminfo
文件获取详细信息Linux系统中,有多种方法可以查看内存的使用情况,以下是几种常用的方法:
使用free
命令
free
命令是一个快速查看系统内存使用情况的工具,它提供了总内存、已用内存、空闲内存、缓存和交换分区等信息,默认情况下,free
命令的输出单位是KB,但可以通过选项更改为MB或GB等。
基本用法:
free
常用选项:
-m
:以MB为单位显示内存使用情况。-g
:以GB为单位显示内存使用情况。-h
:自动选择合适的单位(如M、G)进行显示。-t
:显示总的内存和交换分区信息。-s <间隔秒数>
:设置更新间隔时间,持续监控内存使用情况。-c <次数>
:设置更新的次数,达到次数后停止监控。
示例:
free -m
输出示例:
total used free shared buff/cache available Mem: 7741 5623 1560 12374 56649 44423 Swap: 7935 528 73767
在这个示例中,total
表示总内存大小,used
表示已用内存,free
表示空闲内存,shared
表示多个进程共享的内存,buff/cache
表示缓冲区和缓存的内存,available
表示可用于启动新应用程序的内存大小。
查看/proc/meminfo
文件
/proc/meminfo
是一个虚拟文件,它包含了系统内存的详细信息,这个文件的内容由内核动态更新,提供了关于内存使用情况的详细报告。
基本用法:
cat /proc/meminfo
MemTotal: 65966848 kB MemFree: 889116 kB MemAvailable: 45478012 kB Buffers: 1040 kB Cached: 56090320 kB SwapCached: 251808 kB Active: 43912548 kB Inactive: 17060336 kB ...
在这个文件中,MemTotal
表示总内存大小,MemFree
表示完全空闲的内存,MemAvailable
表示可用于启动新应用程序的内存大小,Buffers
表示用于缓冲区的内存,Cached
表示用于缓存的内存,SwapCached
表示用于交换分区的缓存内存,Active
和Inactive
分别表示活动和非活动的内存。
使用top
命令
top
命令是一个实时监控系统进程状态的工具,它可以显示每个进程的CPU和内存使用情况,通过top
命令,可以查看系统的总内存、已用内存、空闲内存以及各个进程的内存使用情况。
基本用法:
top
top 10:00:00 up 1:00, 2 users, load average: 0.00, 0.00, 0.00 Tasks: 73 total, 1 running, 72 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.0 us, 0.0 sy, 0.0 ni, 99.9 id, 0.0 wa, 0.0 hi, 0.1 si, 0.0 st KiB Mem : 65966848 total, 898236 free, 7060244 used, 58008368 buff/cache KiB Swap: 33030140 total, 30908668 free, 2121472 used. 45487072 avail Mem ...
在top
命令的输出中,KiB Mem
行显示了系统的总内存、已用内存、空闲内存和缓冲区/缓存的内存。KiB Swap
行显示了交换分区的总大小、已用大小和空闲大小。top
命令还会列出各个进程的内存使用情况,包括进程ID、用户、优先级、虚拟内存大小、常驻内存大小、共享内存大小等。
使用htop
命令
htop
命令是top
命令的一个增强版,它提供了更友好的用户界面和更多的功能,与top
命令相比,htop
命令支持鼠标操作、垂直和水平滚动、进程排序和过滤等。
安装htop
:
sudo apt install htop
基本用法:
htop
htop
命令的输出与top
命令类似,但它提供了更多的可视化元素和交互功能,顶部区域显示了系统的总内存、已用内存、空闲内存和交换分区的使用情况,下面的列表区域显示了各个进程的详细信息,包括进程ID、用户、CPU使用率、内存使用率等,用户可以通过上下箭头键选择进程,通过F9键杀死进程,通过F5键切换排序方式等。
使用vmstat
命令
vmstat
命令是一个报告虚拟内存统计信息的工具,它可以显示系统的内存、交换分区、IO、CPU等的使用情况。vmstat
命令的输出包括进程、内存、分页、块IO、捕获和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 898236 1040 56090320 0 0 0 0 1 1 0 0 99 0 0
在vmstat
命令的输出中,procs
行显示了等待运行的进程数和不可中断睡眠的进程数。memory
行显示了使用的虚拟内存大小、空闲内存大小、缓冲区大小和缓存大小。swap
行显示了从磁盘换入的内存和交换到磁盘的内存。io
行显示了从块设备接收到的块和发送到块设备的块。system
行显示了每秒中断次数和上下文切换次数。cpu
行显示了CPU的使用情况,包括用户时间、系统时间、空闲时间、等待IO时间和从虚拟机窃取的时间。
归纳对比表格
命令 | 功能描述 | 适用场景 | |
---|---|---|---|
free |
显示系统内存状态,包括物理内存、虚拟内存、共享内存和系统缓存的使用情况 | 总内存、已用内存、空闲内存、共享内存、缓冲区、缓存、可用内存等 | 快速查看内存概况 |
/proc/meminfo |
提供系统内存的详细信息,包括总内存、空闲内存、活动/非活动内存等 | MemTotal、MemFree、MemAvailable、Buffers、Cached、SwapTotal等 | 需要详细了解内存构成时 |
top |
实时监控系统进程状态,包括CPU和内存使用情况 | 系统总内存、已用内存、空闲内存、缓冲区/缓存,以及各进程的内存使用情况 | 实时监控进程内存使用 |
htop |
top 命令的增强版,提供更友好的用户界面和更多功能 |
类似top ,但增加了可视化元素和交互功能 |
需要更直观地监控和管理系统进程时 |
vmstat |
报告虚拟内存统计信息,包括内存、交换分区、IO、CPU等的使用情况 | 进程数、内存使用、交换分区、IO块、系统中断、CPU使用等 | 需要全面了解系统资源使用情况时 |
相关问答FAQs
如何查看Linux系统的总内存大小?
答:可以使用free -m
命令,输出列表中的total
项值即为查询的总内存数,单位是MB,或者执行cat /proc/meminfo
命令,输出列表中的MemTotal
项值也是查询的总内存大小,单位是kB。
free
命令中的available
字段是什么意思?
答:available
字段表示可用于启动新应用程序且无需交换的内存大小,它考虑了缓冲区和缓存的内存,因此比单纯的free
字段更准确地反映了系统当前可用的内存资源
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/69716.html