全面剖析 Linux 系统中的内存查看23
前言
内存作为计算机系统中至关重要的组成部分,扮演着存储数据和指令的角色。在 Linux 操作系统中,管理和查看内存至关重要,有助于解决性能问题、内存泄漏等问题。本文将深入探讨 Linux 系统中查看内存的各种方法,为系统管理员和用户提供全面的指南。
使用 free 命令
free 命令是查看 Linux 系统中已用和可用内存的常用工具。它显示以下信息:* Total: 系统总内存大小
* Used: 已使用的内存量
* Free: 可用的内存量
* Shared: 正在共享的内存量
* Buffers: 用于文件系统缓冲区的内存量
* Cache: 用于文件系统高速缓存的内存量
$ free -m # 以 MB 为单位显示结果
total used free shared buff/cache available
Mem: 32759 2601 29767 771 457 29252
Swap: 32767 0 32767
复制代码
使用 vmstat 命令
vmstat 命令提供有关内存使用的持续报告。它显示虚拟内存统计信息,包括:* r: 等待 CPU 时间的进程数
* b: 等待 I/O 操作的进程数
* si: 交换到内存的页面数
* so: 交换到磁盘的页面数
* free: 可用的内存量
$ vmstat 5 2 # 每 5 秒更新输出,运行 2 次
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 29044 29576 52624 194928 0 0 1 0 12 17 1 1 98 0 0
0 0 29044 29576 52624 194928 0 0 0 0 11 15 0 1 99 0 0
复制代码
使用 top 命令
top 命令显示系统中的实时进程信息,也提供了内存使用统计信息。它的输出显示:* 总内存使用情况: 内存使用情况摘要,包括已用、已缓存和可用内存
* 按进程排序的内存使用情况: 按内存使用量从高到低列出的进程列表
$ top -o %MEM
Tasks: 282 total, 1 running, 281 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.3 us, 0.4 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 32759.4 total, 29767.1 free, 2601.0 used, 391.3 buff/cache
MiB Swap: 32767.9 total, 32767.9 free, 0.0 used. 29044 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
25094 root 20 0 1447292 1.324g 4944 S 0.0 4.6 60:38.91 Xorg
22755 root 20 0 44852 1.296g 25852 S 0.3 3.9 128:09.24 gnome-shell
28535 root 20 0 59012 1.244g 20816 S 0.0 3.7 192:45.46 tracker-miner
22916 system 20 0 101128 1.076g 92332 S 0.3 3.2 126:50.86 gnome-terminal-se
21645 root 20 0 45152 1.068g 55400 S 0.0 3.2 131:58.39 gnome-software
13894 pavel 20 0 1301740 982.5m 41852 S 0.0 3.0 323:26.78 google-chrome
28534 root 20 0 40176 949.8m 30404 S 0.0 2.9 187:21.56 tracker-extract
29051 root 20 0 1219240 931.9m 95120 S 0.0 2.8 122:14.69 gpicview
29149 root 20 0 65396 913.6m 24168 S 0.0 2.8 66:53.80 gnome-documents
29137 root 20 0 71676 875.4m 28708 S 0.0 2.7 120:05.59 speech-dispatcher
复制代码
使用 sar 命令
sar 命令收集并报告系统活动信息,包括内存使用情况。它提供:* -r: 物理内存使用报告
* -S: 交换空间使用报告
$ sar -r 5 2 # 每 5 秒更新输出,运行 2 次
Linux 5.10.0-6-amd64 (host) 06/29/2022 _x86_64_ (4 CPU)
12:26:03 PM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit
12:26:08 PM 29767280 2601160 8.5 52624 194928 2925208 95.6
12:26:13 PM 29767280 2601160 8.5 52624 194928 2925208 95.6
复制代码
使用 atop 工具
atop 是一个高级工具,用于监视和报告系统活动,包括内存使用情况。它提供:* 可视化内存使用摘要: 内存使用情况的时间序列图
* 按进程排序的内存使用情况: 按内存使用量从高到低列出的进程列表
* 历史内存使用数据: 用于趋势分析的长时历史记录
$ sudo apt install atop # 安装 atop
$ atop
------------------------------------ atop -------------------------------------
Memory Usage, by Type, Active, and Inactive.
|---------------------------------------------------------------------|
| size resvd free inactive active buffers |
|---------+---------+---------+---------+---------+---------+
| 16.0 GiB | 18.4 MiB | 16.0 GiB | 16.0 GiB | 11.1 MiB | 774.1 MiB |
|---------------------------------------------------------------------|
| inactive = memory "not" currently being used (but recently referenced) |
| active = memory currently being used, but "not" recently referenced |
| buffers = memory used by the kernel to cache disk accesses |
|---------------------------------------------------------------------|
复制代码
使用 glances 工具
glances 是一个基于终端的系统监视工具,用于实时显示系统信息,包括内存使用情况。它提供:* 可视化内存使用摘要: 内存使用情况的饼图表示
* 按类型分类的内存使用细分: 显示已用、已缓存、已缓冲和可用内存量的细分
$ sudo apt install glances # 安装 glances
$ glances
____
) / /
( /___/
/ /\_ / __/
(_/
2024-10-09