文章目录
- 前言
- 一. free命令介绍
- 二. 语法格式及常用选项
- 三. 参考案例
- 3.1 查看free相关的信息
- 3.2 以MB的形式显示内存的使用情况
- 3.3 以总和的形式显示内存的使用情况
- 3.4 周期性的查询内存的使用情况
- 3.5 以更人性化的形式来查看内存的结果输出
- 总结
前言
大家好,又见面了,我是沐风晓月,本文是专栏【linux基本功-基础命令实战】的第53篇文章。
专栏地址:[linux基本功-基础命令专栏] , 此专栏是沐风晓月对Linux常用命令的汇总,希望能够加深自己的印象,以及帮助到其他的小伙伴😉😉。
如果文章有什么需要改进的地方还请大佬不吝赐教👏👏。
🏠个人主页:我是沐风晓月
🧑个人简介:大家好,我是沐风晓月,双一流院校计算机专业😉😉
💕 座右铭: 先努力成长自己,再帮助更多的人 ,一起加油进步🍺🍺🍺
💕欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信😘
一. free命令介绍
free 是一个 Linux 和 Unix 操作系统中常用的命令,它用于显示系统中可用内存的总量、已用内存的总量、空闲内存的总量和缓存的内存量。
二. 语法格式及常用选项
依据惯例,我们还是先查看帮助,使用 free --help
[root@mufeng ~]# free --help
Usage:
free [options]
Options:
-b, --bytes show output in bytes
-k, --kilo show output in kilobytes
-m, --mega show output in megabytes
-g, --giga show output in gigabytes
--tera show output in terabytes
--peta show output in petabytes
-h, --human show human-readable output
--si use powers of 1000 not 1024
-l, --lohi show detailed low and high memory statistics
-t, --total show total for RAM + swap
-s N, --seconds N repeat printing every N seconds
-c N, --count N repeat printing N times, then exit
-w, --wide wide output
--help display this help and exit
-V, --version output version information and exit
为了更直观一些,我们把常用的参数用表格来展示:
参数 | 描述 |
---|---|
-b | 以字节为单位显示内存使用情况; |
-k | 以千字节为单位显示内存使用情况; |
-m | 以兆字节为单位显示内存使用情况; |
-g | 以吉字节为单位显示内存使用情况; |
-h | 人性化显示内存使用情况,以适合人类阅读的方式显示; |
-s <秒数> | 指定间隔秒数,以连续监控内存使用情况; |
-c <次数> | 指定监控次数,完成后退出; |
-t | 在汇总行中显示内存总量。 |
有了具体的参数之后,我们再来看实战案例:
三. 参考案例
3.1 查看free相关的信息
[root@mufeng ~]# free
total used free shared buff/cache available
Mem: 1863252 833224 376152 134604 653876 657068
Swap: 2097148 29448 2067700
这里出现的参数的解释:
-
total:总计物理内存的大小。
-
used:已使用多少内存。
-
free:可用有多少内存。
-
Shared:多个进程共享的内存总额。
-
Buffers/cached:磁盘缓存的大小。
-
MEM 表示内存
-
Swap表示 swap空间
问题1: 那buffers和cached都是缓存,两者有什么区别呢?
的确buffers 和 cached 都是用于缓存的内存,但是它们的缓存对象不同:
buffers:用于缓存块设备(如硬盘、光驱等)的输入输出数据,缓存的是磁盘块的数据。这个缓存会在数据被写入磁盘后被释放掉,不会持久化到磁盘上。
cached:用于缓存文件系统的数据,缓存的是文件数据。这个缓存会在文件被修改时被写入磁盘,从而变成持久化的缓存。
因此,buffers 主要是用于优化磁盘 I/O 操作,而 cached 主要是用于优化文件读取操作。在 Linux 系统中,buffers 和 cached 都会占用未被应用程序使用的内存,以提高系统性能和响应速度。当需要更多内存时,它们可以被释放掉,以供应用程序使用。
问题2 : free中的available 是什么
“available” 的美音标是 /əˈveɪləbl/
available 字段是指系统中可用的内存量,它表示系统当前可用于分配给新进程使用的内存量。这个值并不完全等于 free 字段,因为还考虑了缓存的内存和已经被分配但可以被回收的内存。
available 字段的计算方法是:free + buffers + cached - low water mark,其中 low water mark 是一个系统内部预留的缓冲区,用于保证系统能够保持足够的缓存能力,以应对高峰期的内存需求。
available 字段可以用来估算系统还可以为新进程提供的内存空间,因为它考虑了系统当前缓存的内存,以及一些可以被回收的内存。但是需要注意的是,这个值并不是绝对精确的,因为它只是一个估算值,而且可能会随着系统使用情况的变化而变化。
从应用程序的角度来说,可用内存=系统free memory+buffers+cached。
3.2 以MB的形式显示内存的使用情况
以M对形式显示,此处用的是MB
[root@mufeng ~]# free -m
total used free shared buff/cache available
Mem: 1819 813 367 131 638 641
Swap: 2047 28 2019
[root@mufeng ~]#
3.3 以总和的形式显示内存的使用情况
此处使用 -t参数,代码如下:
[root@mufeng ~]# free -t
total used free shared buff/cache available
Mem: 1863252 833156 376216 134604 653880 657136
Swap: 2097148 29448 2067700
Total: 3960400 862604 2443916
[root@mufeng ~]#
3.4 周期性的查询内存的使用情况
-s参数可以周期行的查询内存的使用情况:
比如每五秒钟查询一次:
[root@mufeng ~]# free -s 5
total used free shared buff/cache available
Mem: 1863252 833220 376152 134604 653880 657072
Swap: 2097148 29448 2067700
total used free shared buff/cache available
Mem: 1863252 833220 376152 134604 653880 657072
Swap: 2097148 29448 2067700
可以看到每五秒钟会跳一次,也就是查询一次。
3.5 以更人性化的形式来查看内存的结果输出
此处我们用到 -h参数
[root@mufeng ~]# free -h
total used free shared buff/cache available
Mem: 1.8G 813M 367M 131M 638M 641M
Swap: 2.0G 28M 2.0G
[root@mufeng ~]#
以上就是free命令的全部内容,后续如果有新的感悟在继续添加。
总结
free命令在日常工作中,应用的比较广泛,一定要认真学习,记熟记牢常用参数。
💕💕💕 好啦,这就是今天要分享给大家的全部内容了,我们下期再见!✨ ✨ ✨
🍻🍻🍻如果你喜欢的话,就不要吝惜你的一键三连了~