Linux free命令详解:分析查看内存使用情况

举报
ImAlex 发表于 2024/10/29 18:24:44 2024/10/29
【摘要】 在Linux系统中,了解系统内存的使用情况对于性能监控和调优至关重要。`free` 命令是一种常用的工具,用于显示系统内存的详细信息,包括物理内存和交换内存的使用情况。本文将详细介绍如何使用 `free` 命令,以及解释输出的各个字段。

在Linux系统中,了解系统内存的使用情况对于性能监控和调优至关重要。free 命令是一种常用的工具,用于显示系统内存的详细信息,包括物理内存和交换内存的使用情况。本文将详细介绍如何使用 free 命令,以及解释输出的各个字段。

🧑 博主简介:现任阿里巴巴嵌入式技术专家,15年工作经验,深耕嵌入式+人工智能领域,精通嵌入式领域开发、技术管理、简历招聘面试。各技术博客社区平台的优质创作者,提供产品测评、学习辅导、简历面试辅导、毕设辅导、项目开发、C/C++/Java/Python/Linux/AI等方面的服务,如有需要请站内私信或者联系任意文章底部的的VX名片(ID:gylzbk

💬 博主粉丝群介绍:① 群内高中生、本科生、研究生、博士生遍布,可互相学习,交流困惑。② 热榜常客也在群里,也有数不清的万粉大佬,可以交流写作技巧,上榜经验,涨粉秘籍。③ 群内也有职场精英,大厂大佬,可交流技术、面试、找工作的经验。④ 进群免费赠送写作秘籍一份,助你由写作小白晋升为创作大佬。⑤ 群里红包不断,异常活跃,感兴趣的加我vx(ID:gylzbk),拉你进群,互相学习共同进步。

image.png

概述

在Linux系统中,了解系统内存的使用情况对于性能监控和调优至关重要。free 命令是一种常用的工具,用于显示系统内存的详细信息,包括物理内存和交换内存的使用情况。本文将详细介绍如何使用 free 命令,以及解释输出的各个字段。

free 命令简介

free 是一个命令行工具,用于显示系统中物理内存和交换内存的使用情况。它提供了一种简单而有效的方式来查看内存的总量、已用内存、空闲内存和缓冲/缓存的内存。

安装与基本用法

安装 free 命令

在大多数的Linux发行版中,free 命令默认情况下已经安装。它属于 procps 软件包的一部分。如果你的系统上没有 free 命令,可以通过包管理器进行安装。

  • 在Debian/Ubuntu系统上:
sudo apt-get install procps
  • 在CentOS/RHEL系统上:
sudo yum install procps-ng

基本用法

运行 free 命令:

free

输出示例:

$ free
              total        used        free      shared  buff/cache   available
Mem:        8063436     3463948     1985968      268008     2181520     4128060
Swap:       2097148           0     2097148

free 命令输出详解

默认情况下,free 命令的输出包括两部分:内存(Mem)和交换分区(Swap)。以下是每个字段的解释。

Mem(内存)

  • total:总内存量。
  • used:已用内存量,包括内核缓冲区和缓存。
  • free:未被使用的内存量。
  • shared:在多个进程间共享的内存量。
  • buff/cache:内核缓冲区和缓存所占用的内存量。
  • available:用户空间程序可用的内存量(考虑到缓冲区和缓存后)。

Swap(交换分区)

  • total:总交换分区大小。
  • used:已用交换分区大小。
  • free:未被使用的交换分区大小。

常用选项

1. 使用-h选项显示人类可读格式

-h 选项可以将内存以人类可读的形式显示(例如,K、M、G单位)。

free -h

输出示例:

$ free -h
              total        used        free      shared  buff/cache   available
Mem:           7.7G        3.3G        1.9G        262M        2.1G        4.0G
Swap:          2.0G          0B        2.0G

2. 使用-b, -k, -m, -g选项指定单位

显示内存信息时,可以使用不同的单位:

  • -b:以字节为单位显示。
  • -k:以千字节为单位显示(默认)。
  • -m:以兆字节为单位显示。
  • -g:以千兆字节为单位显示。
free -m

输出示例:

$ free -m
              total        used        free      shared  buff/cache   available
Mem:           7881        3384        1940         262        2132        4028
Swap:          2047           0        2047

3. 使用-t选项显示总和

-t 选项可以在输出中增加一行显示内存和交换分区的总和。

free -t

输出示例:

$ free -t
              total        used        free      shared  buff/cache   available
Mem:        8063436     3463948     1985968      268008     2181520     4128060
Swap:       2097148           0     2097148
Total:     10160584     3463948     4083116

4. 周期性输出(使用-s选项)

-s 选项可以设定间隔时间,周期性地显示内存信息。

free -s 2

每2秒刷新一次内存信息,直到手动终止(Ctrl+C)。

结合watch命令实时监控

watch 命令可以定时执行某个命令,并在终端中动态显示结果。结合 free 命令,可以实时监控内存使用情况。

watch -n 2 free -h

每2秒刷新一次 free -h 的输出。

其他查看内存使用情况的方法

1. 通过/proc/meminfo

/proc/meminfo 是一个虚拟文件,包含了大量关于系统内存使用情况的信息。

cat /proc/meminfo

输出示例:

$ cat /proc/meminfo
MemTotal:        8063436 kB
MemFree:         1985968 kB
MemAvailable:    4128060 kB
Buffers:          262008 kB
Cached:          1919520 kB
SwapTotal:       2097148 kB
SwapFree:        2097148 kB
...

2. 使用vmstat

vmstat 提供了一个全面的性能统计报告,包括内存、虚拟内存、CPU、磁盘IO等信息。

vmstat

输出示例:

$ vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 2001848 269080 2181520    0    0    51    31  199  658  3  1 96  0  0

3. 使用htoptop

htoptop 是两个交互式的系统监控工具,能够显示实时的内存使用情况。

使用htop

htop

使用top

top

总结

通过本文的介绍,你已经全面了解了 free 命令的用法与输出解释,以及一些常用选项和高级功能。同时,还了解了结合 watch 命令进行实时监控的方法。为了进一步提升系统监控的效果,你还可以使用其他的工具,如 /proc/meminfo, vmstat, 以及 htoptop。这些工具配合使用,可以帮助你详细了解系统的内存使用情况,从而进行有效的性能调优和监控。

希望本文能帮助你更好地掌握Linux系统内存监控的技能。如果有任何问题或进一步的需求,欢迎继续交流讨论!

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。