linux 查看内存用量_检查Linux中内存使用情况的8条命令

Linux 并不像 Windows,你经常不会有图形界面可供使用,特别是在服务器环境中。

作为一名 Linux 管理员,知道如何获取当前可用的和已经使用的资源情况,比如内存、CPU、磁盘等,是相当重要的。如果某一应用在你的系统上占用了太多的资源,导致你的系统无法达到最优状态,那么你需要找到并修正它。

如果你想找到消耗内存前十名的进程,你需要去阅读这篇文章:如何在 Linux 中找出内存消耗最大的进程。

在 Linux 中,命令能做任何事,所以使用相关命令吧。在这篇教程中,我们将会给你展示 8 个有用的命令来即查看在 Linux 系统中内存的使用情况,包括 RAM 和交换分区。

创建交换分区在 Linux 系统中是非常重要的,如果你想了解如何创建,可以去阅读这篇文章:在 Linux 系统上创建交换分区。

下面的命令可以帮助你以不同的方式查看 Linux 内存使用情况。

free 命令

/proc/meminfo 文件

vmstat 命令

ps_mem 命令

smem 命令

top 命令

htop 命令

glances 命令

1)如何使用 free 命令查看 Linux 内存使用情况

free 命令 是被 Linux 管理员广泛使用的主要命令。但是它提供的信息比 /proc/meminfo 文件少。

free 命令会分别展示物理内存和交换分区内存中已使用的和未使用的数量,以及内核使用的缓冲区和缓存。

这些信息都是从 /proc/meminfo 文件中获取的。

#free-m

total used free shared buff/cache available

Mem:1586791991702331549653039

Swap:1745466616788

total:总的内存量

used:被当前运行中的进程使用的内存量(used = total – free – buff/cache)

free: 未被使用的内存量(free = total – used – buff/cache)

shared: 在两个或多个进程之间共享的内存量

buffers: 内存中保留用于内核记录进程队列请求的内存量

cache: 在 RAM 中存储最近使用过的文件的页缓冲大小

buff/cache: 缓冲区和缓存总的使用内存量

available: 可用于启动新应用的可用内存量(不含交换分区)

2) 如何使用 /proc/meminfo 文件查看 Linux 内存使用情况

/proc/meminfo 文件是一个包含了多种内存使用的实时信息的虚拟文件。它展示内存状态单位使用的是 kB,其中大部分属性都难以理解。然而它也包含了内存使用情况的有用信息。

#cat/proc/meminfo

MemTotal:16248572kB

MemFree:1764576kB

MemAvailable:3136604kB

Buffers:234132kB

Cached:4731288kB

SwapCached:28516kB

Active:9004412kB

Inactive:3552416kB

Active(anon):8094128kB

Inactive(anon):2896064kB

Active(file):910284kB

Inactive(file):656352kB

Unevictable:80kB

Mlocked:80kB

SwapTotal:17873388kB

SwapFree:17191328kB

Dirty:252kB

Writeback:0kB

AnonPages:7566736kB

Mapped:3692368kB

Shmem:3398784kB

Slab:278976kB

SReclaimable:125480kB

SUnreclaim:153496kB

KernelStack:23936kB

PageTables:73880kB

NFS_Unstable:0kB

Bounce:0kB

WritebackTmp:0kB

CommitLimit:25997672kB

Committed_AS:24816804kB

VmallocTotal:34359738367kB

VmallocUsed:0kB

VmallocChunk:0kB

Percpu:3392kB

HardwareCorrupted:0kB

AnonHugePages:0kB

ShmemHugePages:0kB

ShmemPmdMapped:0kB

HugePages_Total:0

HugePages_Free:0

HugePages_Rsvd:0

HugePages_Surp:0

Hugepagesize:2048kB

Hugetlb:0kB

DirectMap4k:1059088kB

DirectMap2M:14493696kB

DirectMap1G:2097152kB

3) 如何使用 vmstat 命令查看 Linux 内存使用情况

vmstat 命令 是另一个报告虚拟内存统计信息的有用工具。

vmstat 报告的信息包括:进程、内存、页面映射、块 I/O、陷阱、磁盘和 CPU 特性信息。vmstat 不需要特殊的权限,并且它可以帮助诊断系统瓶颈。

#vmstat

procs-----------memory-------------swap-------io-----system--------cpu-----

r b swpd free buff cache si so bi boincs us syidwa st

1068206017693242341884853500032591311634135200

如果你想详细了解每一项的含义,阅读下面的描述。

procs:进程

r: 可以运行的进程数目(正在运行或等待运行)

b: 处于不可中断睡眠中的进程数目

memory:内存

swpd: 使用的虚拟内存数量

free: 空闲的内存数量

buff: 用作缓冲区内存的数量

cache: 用作缓存内存的数量

inact: 不活动的内存数量(使用 -a 选项)

active: 活动的内存数量(使用 -a 选项)

Swap:交换分区

si: 每秒从磁盘交换的内存数量

so: 每秒交换到磁盘的内存数量

IO:输入输出

bi: 从一个块设备中收到的块(块/秒)

bo: 发送到一个块设备的块(块/秒)

System:系统

in: 每秒的中断次数,包括时钟。

cs: 每秒的上下文切换次数。

CPU:下面这些是在总的 CPU 时间占的百分比

us: 花费在非内核代码上的时间占比(包括用户时间,调度时间)

sy: 花费在内核代码上的时间占比 (系统时间)

id: 花费在闲置的时间占比。在 Linux 2.5.41 之前,包括 I/O 等待时间

wa: 花费在 I/O 等待上的时间占比。在 Linux 2.5.41 之前,包括在空闲时间中

st: 被虚拟机偷走的时间占比。在 Linux 2.6.11 之前,这部分称为 unknown

运行下面的命令查看详细的信息。

#vmstat-s

16248580K total memory

2210256K used memory

2311820K active memory

2153352K inactive memory

11368812K free memory

107584K buffer memory

2561928K swap cache

17873388K total swap

0K used swap

17873388K free swap

44309non-niceuser cpu ticks

164niceuser cpu ticks

14332system cpu ticks

382418idle cpu ticks

1248IO-wait cpu ticks

1407IRQ cpu ticks

2147softirq cpu ticks

0stolen cpu ticks

1022437pages pagedin

260296pages paged out

0pages swappedin

0pages swapped out

1424838interrupts

4979524CPU context switches

1577163147boottime

3318forks

4) 如何使用 ps_mem 命令查看 Linux 内存使用情况

ps_mem 是一个用来查看当前内存使用情况的简单的 Python 脚本。该工具可以确定每个程序使用了多少内存(不是每个进程)。

该工具采用如下的方法计算每个程序使用内存:总的使用 = 程序进程私有的内存 + 程序进程共享的内存。

计算共享内存是存在不足之处的,该工具可以为运行中的内核自动选择最准确的方法。

#ps_mem

Private+Shared=RAM usedProgram

180.0KiB+30.0KiB=210.0KiBxf86-video-intel-backlight-helper(2)

192.0KiB+66.0KiB=258.0KiBcat(2)

312.0KiB+38.5KiB=350.5KiBlvmetad

380.0KiB+25.5KiB=405.5KiBcrond

392.0KiB+32.5KiB=424.5KiBrtkit-daemon

852.0KiB+117.0KiB=969.0KiBgnome-session-ctl(2)

928.0KiB+56.5KiB=984.5KiBgvfs-mtp-volume-monitor

1.0MiB+42.5KiB=1.0MiBdconf-service

1.0MiB+106.5KiB=1.1MiBgvfs-goa-volume-monitor

1.0MiB+180.5KiB=1.2MiBgvfsd

.

.

5.3MiB+3.0MiB=8.3MiBevolution-addressbook-factory

8.5MiB+1.2MiB=9.7MiBgnome-session-binary(4)

7.5MiB+3.1MiB=10.5MiBpolkitd

7.4MiB+3.3MiB=10.7MiBpulseaudio(2)

7.0MiB+7.0MiB=14.0MiBmsm_notifier

12.7MiB+2.3MiB=15.0MiBevolution-source-registry

13.3MiB+2.5MiB=15.8MiBgnome-terminal-server

15.8MiB+1.0MiB=16.8MiBtracker-miner-fs

18.7MiB+1.8MiB=20.5MiBpython3.7

16.6MiB+4.0MiB=20.5MiBevolution-calendar-factory

22.3MiB+753.0KiB=23.0MiBgsd-keyboard(2)

22.4MiB+832.0KiB=23.2MiBgsd-wacom(2)

20.8MiB+2.5MiB=23.3MiBblueman-tray

22.0MiB+1.8MiB=23.8MiBblueman-applet

23.1MiB+934.0KiB=24.0MiBgsd-xsettings(2)

23.7MiB+1.2MiB=24.9MiBgsd-media-keys(2)

23.4MiB+1.6MiB=25.0MiBgsd-color(2)

23.9MiB+1.2MiB=25.1MiBgsd-power(2)

16.5MiB+8.9MiB=25.4MiBevolution-alarm-notify

27.2MiB+2.0MiB=29.2MiBsystemd-journald

28.7MiB+2.8MiB=31.5MiBc

29.6MiB+2.2MiB=31.8MiBchrome-gnome-sh(2)

43.9MiB+6.8MiB=50.7MiBWebExtensions

46.7MiB+6.7MiB=53.5MiBgoa-daemon

86.5MiB+55.2MiB=141.7MiBXorg(2)

191.4MiB+24.1MiB=215.4MiBnotepadqq-bin

306.7MiB+29.0MiB=335.7MiBgnome-shell(2)

601.6MiB+77.7MiB=679.2MiBfirefox

1.0GiB+109.7MiB=1.1GiBchrome(15)

2.3GiB+123.1MiB=2.5GiBWebContent(8)

----------------------------------

5.6GiB

==================================

5)如何使用 smem 命令查看 Linux 内存使用情况

smem 是一个可以为 Linux 系统提供多种内存使用情况报告的工具。不同于现有的工具,smem 可以报告比例集大小Proportional Set Size(PSS)、唯一集大小Unique Set Size(USS)和驻留集大小Resident Set Size(RSS)。

比例集大小(PSS):库和应用在虚拟内存系统中的使用量。

唯一集大小(USS):其报告的是非共享内存。

驻留集大小(RSS):物理内存(通常多进程共享)使用情况,其通常高于内存使用量。

#smem-tk

PIDUserCommandSwapUSS PSS RSS

3383daygeekcat092.0K123.0K1.7M

3384daygeekcat0100.0K129.0K1.7M

1177daygeek/usr/lib/gnome-session-ctl0436.0K476.0K4.6M

1171daygeek/usr/bin/dbus-daemon--conf0524.0K629.0K3.8M

1238daygeek/usr/lib/xdg-permission-sto0592.0K681.0K5.9M

1350daygeek/usr/lib/gsd-screensaver-pr0652.0K701.0K5.8M

1135daygeek/usr/lib/gdm-x-session--ru0648.0K723.0K6.0M

.

.

1391daygeek/usr/lib/evolution-data-ser016.5M25.2M63.3M

1416daygeek caffeine-ng028.7M31.4M66.2M

4855daygeek/opt/google/chrome/chrome-038.3M46.3M120.6M

2174daygeek/usr/lib/firefox/firefox-c044.0M50.7M120.3M

1254daygeek/usr/lib/goa-daemon046.7M53.3M80.4M

3416daygeek/opt/google/chrome/chrome-044.7M54.2M103.3M

4782daygeek/opt/google/chrome/chrome-057.2M65.8M142.3M

1137daygeek/usr/lib/Xorgvt2-displayf077.2M129.6M192.3M

3376daygeek/opt/google/chrome/chrome0117.8M131.0M210.9M

4448daygeek/usr/lib/firefox/firefox-c0124.4M133.8M224.1M

3558daygeek/opt/google/chrome/chrome-0157.3M165.7M242.2M

2310daygeek/usr/lib/firefox/firefox-c0159.6M169.4M259.6M

4331daygeek/usr/lib/firefox/firefox-c0176.8M186.2M276.8M

4034daygeek/opt/google/chrome/chrome-0179.3M187.9M264.6M

3911daygeek/opt/google/chrome/chrome-0183.1M191.8M269.4M

3861daygeek/opt/google/chrome/chrome-0199.8M208.2M285.2M

2746daygeek/usr/bin/../lib/notepadqq/n0193.5M217.5M261.5M

1194daygeek/usr/bin/gnome-shell0203.7M219.0M285.1M

2945daygeek/usr/lib/firefox/firefox-c0294.5M308.0M410.2M

2786daygeek/usr/lib/firefox/firefox-c0341.2M354.3M459.1M

4193daygeek/usr/lib/firefox/firefox-c0417.4M427.6M519.3M

2651daygeek/usr/lib/firefox/firefox-c0417.0M430.1M535.6M

2114daygeek/usr/lib/firefox/firefox-c0430.6M473.9M610.9M

2039daygeek/usr/lib/firefox/firefox--0601.3M677.5M840.6M

-------------------------------------------------------------------------------

90104.8G5.2G8.0G

6) 如何使用 top 命令查看 Linux 内存使用情况

top 命令 是一个 Linux 系统的管理员最常使用的用于查看进程的资源使用情况的命令。

该命令会展示了系统总的内存量、当前内存使用量、空闲内存量和缓冲区使用的内存总量。此外,该命令还会展示总的交换空间内存量、当前交换空间的内存使用量、空闲的交换空间内存量和缓存使用的内存总量。

#top-b|head-10

top-11:04:39up40min,1user,load average:1.59,1.42,1.28

Tasks:288total,2running,286sleeping,0stopped,0zombie

%Cpu(s):13.3us,1.5sy,0.0ni,84.4id,0.0wa,0.3hi,0.5si,0.0st

KiBMem:16248572total,7755928free,4657736used,3834908buff/cache

KiBSwap:17873388total,17873388free,0used.9179772availMem

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

2114daygeek203182736616624328228R83.33.87:09.72WebContent

2039daygeek204437952849616261364S13.35.27:58.54firefox

1194daygeek204046856291288165460S4.21.81:57.68gnome-shell

4034daygeek2080855627324488676S4.21.71:44.72chrome

2945daygeek203309832416572150112S3.32.64:04.60WebContent

1137daygeek20564316197292183380S2.51.22:55.76Xorg

2651daygeek203098420547260275700S1.73.42:15.96WebContent

2786daygeek202957112463912240744S1.72.93:22.29WebContent

1root20182756102087760S0.80.10:04.51systemd

442root-51S0.80:05.02irq/141-iw+

1426daygeek203736604894829820S0.80.30:03.55python3

2174daygeek20246668012219678604S0.80.80:17.75WebExtensi+

7) 如何使用 htop 命令查看 Linux 内存使用情况

htop 命令 是一个可交互的 Linux/Unix 系统进程查看器。它是一个文本模式应用,且使用它需要 Hisham 开发的 ncurses 库。

该名令的设计目的使用来代替 top 命令。该命令与 top 命令很相似,但是其允许你可以垂直地或者水平地的滚动以便可以查看系统中所有的进程情况。

htop 命令拥有不同的颜色,这个额外的优点当你在追踪系统性能情况时十分有用。

此外,你可以自由地执行与进程相关的任务,比如杀死进程或者改变进程的优先级而不需要其进程号(PID)。

8)如何使用 glances 命令查看 Linux 内存使用情况

Glances 是一个 Python 编写的跨平台的系统监视工具。

你可以在一个地方查看所有信息,比如:CPU 使用情况、内存使用情况、正在运行的进程、网络接口、磁盘 I/O、RAID、传感器、文件系统信息、Docker、系统信息、运行时间等等。

【编辑推荐】

【责任编辑:庞桂玉 TEL:(010)68476606】

点赞 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值