当前位置:首页 > Linux > 正文

linux如何查内存

Linux中,可以使用 free -m命令查看内存使用情况,该命令会显示总内存、已用内存、空闲内存及交换分区等信息

Linux系统中,有多种方法可以查看内存的相关信息,以下是详细介绍:

使用free命令

free命令是一个快速查看内存使用情况的工具,它是对/proc/meminfo收集到的信息的一个。

|命令选项|说明|示例输出|

|—-|—-|—-|

|free|显示内存和交换空间的总量、已使用量、空闲量等信息,默认单位是KB。| total used free shared buffers cached

Mem: 32737172 4255132 25135556 0 164280 3064824

Swap: 0 0 0|

|free -h|以人类可读的格式(如MB、GB)显示内存信息。| total used free shared buffers cached

Mem: 31G 3.4G 24G 1.1G 160M 2.9G

Swap: 0B 0B 0B|

|free -m|以MB为单位显示内存信息。|略(类似free输出,只是单位变为MB)|

linux如何查内存 第1张

查看/proc/meminfo文件

/proc/meminfo是一个动态更新的虚拟文件,包含了系统内存的详细信息。

|命令|说明|示例输出(部分)|

|—-|—-|—-|

|cat /proc/meminfo|直接查看该文件内容,显示内存的各项指标,如总内存、空闲内存、缓冲区和缓存等。|MemTotal: 32737172 kB

MemFree: 25040664 kB

MemAvailable: 26554608 kB

Buffers: 164280 kB

Cached: 3064824 kB

SwapCached: 0 kB

Active: 907548 kB

Inactive: 4452772 kB

Active(anon): 3672 kB

Inactive(anon): 3528512 kB|

使用top命令

top命令提供了实时的运行中的程序的资源使用统计,包括内存使用情况。

|操作|说明|示例输出(部分)|

|—-|—-|—-|

|直接输入top|进入top命令界面,默认每3秒刷新一次数据,在顶部信息栏中,可以找到有关内存使用情况的统计信息,如总内存、已使用内存、缓存使用等,下方列表中的%MEM列显示了各个进程所占用的内存百分比。|top 15:32:45 up 1 day, 3:25, 2 users, load average: 0.00, 0.00, 0.00

Tasks: 145 total, 1 running, 144 sleeping, 0 stopped, 0 zombie

%Cpu(s): 0.0 us, 0.1 sy, 0.0 ni, 99.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

KiB Mem : 32737172 total, 4255132 used, 25135556 free, 164280 buffers

KiB Swap: 0 total, 0 used, 0 free, 0 cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

…|

|按下Shift + m|按照内存使用量进行排序,显示占用内存最多的进程。|(同上,只是进程排序会发生变化)|

使用htop命令

htop命令类似于top命令,但有更多的功能和更友好的界面,可以更直观地查看当前系统的内存使用情况。

|命令|说明|特点|

|—-|—-|—-|

|htop|显示每个进程的内存实时使用率,提供所有进程的常驻内存大小、程序总内存大小、共享库大小等的报告,列表可以水平及垂直滚动,并且支持鼠标操作。|界面更友好,交互性更强,能更清晰地展示内存使用情况。|

linux如何查内存 第2张

使用vmstat命令

vmstat命令显示实时的和平均的统计,覆盖CPU、内存、I/O等内容。

|命令|说明|示例输出(部分)|

|—-|—-|—-|

|vmstat -s|显示内存的总量、已使用量、空闲量、缓冲区大小等信息。| 32737172 K total memory

4255132 K used memory

935848 K active memory

4317508 K inactive memory

25135556 K free memory

169456 K buffer memory|

|vmstat -s | grep memory|筛选出与内存相关的信息。|同上|

使用dmidecode命令

dmidecode命令可以读取系统的DMI信息,包括内存条的制造商、型号、容量等信息。

|命令|说明|示例输出(部分)|

|—-|—-|—-|

|sudo dmidecode -t memory|只显示关于内存的信息,包括安装的内存数量、型号、容量、速度等。|Memory Device

Array Handle: 0x0038

Error Information Handle: Not Provided

Total Width: 64 bits

Size: 8192 MB

Form Factor: DIMM

Set: None

Locator: DIMM_A1

Bank Locator: BANK 0

Type: DDR4

Type Detail: Synchronous Unbuffered (Unregistered)

Speed: 2400 MT/s

Manufacturer: Samsung

Serial Number: 12345678

Asset Tag: Not Specified

Part Number: M378A1K43CB2-CTD

Rank: 2

Configured Memory Speed: 2400 MT/s

…|

使用lshw命令

lshw命令可以用来获取系统硬件信息,包括内存信息。

|命令|说明|示例输出(部分)|

|—-|—-|—-|

|sudo lshw -short -C memory|显示系统中所有已安装的内存条信息,包括型号、容量、速度和物理位置等。|H/W path Device Class Description

/0 memory MEM-DEV 32GiB System Memory

/0.1 memory MEM-DEV 8GiB SODIMM DDR4 Synchronous 2400 MHz (0.4 ns)

/0.2 memory MEM-DEV 8GiB SODIMM DDR4 Synchronous 2400 MHz (0.4 ns)

/0.3 memory MEM-DEV 8GiB SODIMM DDR4 Synchronous 2400 MHz (0.4 ns)

/0.4 memory MEM-DEV 8GiB SODIMM DDR4 Synchronous 2400 MHz (0.4 ns)

…|

使用inxi命令

inxi命令可以查看系统的硬件信息,包括内存类型、容量、速度等。

|命令|说明|示例输出(部分)|

|—-|—-|—-|

|inxi -m|显示内存相关信息。|Memory: 32G DDR4 2400MHz (16GB x2)|

相关问答FAQs

问题1:free命令中available和free的区别是什么?

答:free表示的是系统中尚未被分配的物理内存,而available考虑了缓存和缓冲区的可用性,更准确地反映了系统当前可用于启动新应用程序的内存量,因为即使free显示有大量空闲内存,但如果这些内存被缓存和缓冲区占用,可能无法直接用于新的应用程序。

问题2:如何查看某个特定进程的内存使用情况?

答:可以使用ps命令结合--sort选项来查看,要按内存使用量从高到低排序显示进程,可以使用ps aux --sort -rss命令。%MEM列显示了进程所占用的物理内存百分比,RSS列显示了进程实际使用的物理内存大小,也可以使用top或htop命令,在交互界面中找到对应的进程

linux如何查内存 第3张

0