Linux常用命令——free命令

这篇具有很好参考价值的文章主要介绍了Linux常用命令——free命令。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在线Linux命令查询工具

free

显示内存的使用情况

补充说明

free命令可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区。

语法

free(选项)

选项

-b # 以Byte为单位显示内存使用情况;
-k # 以KB为单位显示内存使用情况;
-m # 以MB为单位显示内存使用情况;
-g # 以GB为单位显示内存使用情况。 
-o # 不显示缓冲区调节列;
-s<间隔秒数> # 持续观察内存使用状况;
-t # 显示内存总和列;
-V # 显示版本信息。

实例

free -t    # 以总和的形式显示内存的使用信息
free -s 10 # 周期性的查询内存使用信息,每10s 执行一次命令

显示内存使用情况

free -m
             total       used       free     shared    buffers     cached
Mem:          2016       1973         42          0        163       1497
-/+ buffers/cache:        312       1703
Swap:         4094          0       4094

第一部分Mem行解释:

total:内存总数;
used:已经使用的内存数;
free:空闲的内存数;
shared:当前已经废弃不用;
buffers Buffer:缓存内存数;
cached Page:缓存内存数。

关系:total = used + free
第二部分(-/+ buffers/cache)解释:

(-buffers/cache) used内存数:第一部分Mem行中的 used – buffers – cached
(+buffers/cache) free内存数: 第一部分Mem行中的 free + buffers + cached

可见-buffers/cache反映的是被程序实实在在吃掉的内存,而+buffers/cache反映的是可以挪用的内存总数。
第三部分是指交换分区。
输出结果的第四行是交换分区SWAP的,也就是我们通常所说的虚拟内存。
区别:第二行(mem)的used/free与第三行(-/+ buffers/cache) used/free的区别。 这两个的区别在于使用的角度来看,第一行是从OS的角度来看,因为对于OS,buffers/cached 都是属于被使用,所以他的可用内存是2098428KB,已用内存是30841684KB,其中包括,内核(OS)使用+Application(X, oracle,etc)使用的+buffers+cached.
第三行所指的是从应用程序角度来看,对于应用程序来说,buffers/cached 是等于可用的,因为buffer/cached是为了提高文件读取的性能,当应用程序需在用到内存的时候,buffer/cached会很快地被回收。
所以从应用程序的角度来说,可用内存=系统free memory+buffers+cached。
如本机情况的可用内存为:
18007156=2098428KB+4545340KB+11363424KB
接下来解释什么时候内存会被交换,以及按什么方交换。
当可用内存少于额定值的时候,就会开会进行交换。如何看额定值:

cat /proc/meminfo

MemTotal:       16140816 kB
MemFree:          816004 kB
MemAvailable:    2913824 kB
Buffers:           17912 kB
Cached:          2239076 kB
SwapCached:            0 kB
Active:         12774804 kB
Inactive:        1594328 kB
Active(anon):   12085544 kB
Inactive(anon):    94572 kB
Active(file):     689260 kB
Inactive(file):  1499756 kB
Unevictable:      116888 kB
Mlocked:          116888 kB
SwapTotal:       8191996 kB
SwapFree:        8191996 kB
Dirty:                56 kB
Writeback:             0 kB
AnonPages:      12229228 kB
Mapped:           117136 kB
Shmem:             58736 kB
Slab:             395568 kB
SReclaimable:     246700 kB
SUnreclaim:       148868 kB
KernelStack:       30496 kB
PageTables:       165104 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:    16262404 kB
Committed_AS:   27698600 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      311072 kB
VmallocChunk:   34350899200 kB
HardwareCorrupted:     0 kB
AnonHugePages:   3104768 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:      225536 kB
DirectMap2M:    13279232 kB
DirectMap1G:     5242880 kB

交换将通过三个途径来减少系统中使用的物理页面的个数:

  • 减少缓冲与页面cache的大小,
  • 将系统V类型的内存页面交换出去,
  • 换出或者丢弃页面。(Application 占用的内存页,也就是物理内存不足)。
    事实上,少量地使用swap是不是影响到系统性能的。
    那buffers和cached都是缓存,两者有什么区别呢?
    为了提高磁盘存取效率, Linux做了一些精心的设计, 除了对dentry进行缓存(用于VFS,加速文件路径名到inode的转换), 还采取了两种主要Cache方式:
    Buffer Cache和Page Cache。前者针对磁盘块的读写,后者针对文件inode的读写。这些Cache有效缩短了 I/O系统调用(比如read,write,getdents)的时间。
    磁盘的操作有逻辑级(文件系统)和物理级(磁盘块),这两种Cache就是分别缓存逻辑和物理级数据的。
    Page cache实际上是针对文件系统的,是文件的缓存,在文件层面上的数据会缓存到page cache。文件的逻辑层需要映射到实际的物理磁盘,这种映射关系由文件系统来完成。当page cache的数据需要刷新时,page cache中的数据交给buffer cache,因为Buffer Cache就是缓存磁盘块的。但是这种处理在2.6版本的内核之后就变的很简单了,没有真正意义上的cache操作。
    Buffer cache是针对磁盘块的缓存,也就是在没有文件系统的情况下,直接对磁盘进行操作的数据会缓存到buffer cache中,例如,文件系统的元数据都会缓存到buffer cache中。
    简单说来,page cache用来缓存文件数据,buffer cache用来缓存磁盘数据。在有文件系统的情况下,对文件操作,那么数据会缓存到page cache,如果直接采用dd等工具对磁盘进行读写,那么数据会缓存到buffer cache。
    所以我们看linux,只要不用swap的交换空间,就不用担心自己的内存太少.如果常常swap用很多,可能你就要考虑加物理内存了.这也是linux看内存是否够用的标准.
    如果是应用服务器的话,一般只看第二行,+buffers/cache,即对应用程序来说free的内存太少了,也是该考虑优化程序或加内存了。

在线Linux命令查询工具

Linux常用命令——free命令
原文链接文章来源地址https://www.toymoban.com/news/detail-504922.html

到了这里,关于Linux常用命令——free命令的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Linux】虚拟机安装Linux、客户端工具及Linux常用命令(详细教程)

    目录 一、导言 1、引言 2、使用场景 二、Linux安装 1、安装 2、网络配置 2.1、查看网络配置 2.2、更改网络配置 三、安装客户端工具 1、介绍 2、安装MobaXterm 3、换源 4、拍照功能 四、常用命令          Linux 是一个开源的操作系统内核,它最初由芬兰计算机科学家 Linus Torva

    2024年02月06日
    浏览(77)
  • Linux命令200例:nc非常有用的网络工具(常用)

    🏆作者简介,黑夜开发者,全栈领域新星创作者✌。CSDN专家博主,阿里云社区专家博主,2023年6月csdn上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责人。 🏆本文已收录于专栏:Linux命令大全。 🏆本专栏我们会通过 具体的系统的命令讲解 加上

    2024年02月12日
    浏览(39)
  • 内存去哪儿了——linux free 命令查看内存偏小

        相信很多公司都在使用云服务器,不知道大家有没有注意到,当你购买了一台云服务器以后,在操作系统里面通过 free 命令查看服务器的内存,容量总是会小于在云厂商控制台上面看到的内存容量。     为什么会这样呢,那就带着疑问往下看。 购买了2台云服务,控制

    2024年02月16日
    浏览(42)
  • Centos虚拟机安装配置与MobaXterm工具及Linux常用命令

    目录 一、Centos操作系统 1.1 Centos介绍 1.2 Centos虚拟机安装 1.3 配置centos的镜像  1.4 虚拟机开机初始设置  1.4.1 查看网络配置 1.4.2 编辑网络配置  二、MobaXterm工具 2.1 MobaXterm介绍 2.2 MobaXterm安装  2.3 切换国内源 三、Linux常用命令和模式 3.1 查看网络配置 3.2 文件管理 3.3 vi或vim编

    2024年02月07日
    浏览(48)
  • 实战|掌握Linux内存监视:free命令详解与使用技巧

    大家好,又见面了,我是沐风晓月,本文是专栏【linux基本功-基础命令实战】的第53篇文章。 专栏地址:[linux基本功-基础命令专栏] , 此专栏是沐风晓月对Linux常用命令的汇总,希望能够加深自己的印象,以及帮助到其他的小伙伴😉😉。 如果文章有什么需要改进的地方还请

    2024年01月25日
    浏览(42)
  • 汽车管理在线查询工具,定位车辆,轻松追踪!

      随着金融科技的不断发展,越来越多的在线查询工具被应用到汽车管理领域。一款名为汽车管理在线查询工具,定位车辆,轻松追踪的工具就是其中之一。此工具通过API接口代码实现了车牌号查车辆信息、车辆故障码、VIN查询汽车品牌以及二手车估值等功能,为用户提供了

    2024年02月05日
    浏览(44)
  • 分享20+个在线工具网站,60+常用工具

    💂 个人网站:【工具大全】【游戏大全】【神级源码资源网】 🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】 💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 今天给大家分享20+在线工具网站和 60个常用在线工具+前端工具 欢迎大家访问:h

    2024年02月09日
    浏览(50)
  • 目前常用的在线格式化工具

    一、BeJson格式化工具 网址: 在线JSON校验格式化工具(Be JSON) 优点:工具多 缺点:广告多,界面设计较旧,拼凑的工具网站,界面风格差异较大不统一。         二、Robots2开发工具箱 网址: Robots2开发工具网站 优点:工具界面风格统一,界面整洁,有日常开发用到的工具

    2024年02月03日
    浏览(46)
  • ES常用命令与常用查询(1)

    查看集群状态 创建索引 查看所有索引 查看索引信息 删除索引 2.1 查询所有 match_all 使用match_all,默认只会返回10条数据 返回指定条数 size 不能无限大,如果过大会出现异常 1、查询结果的窗口太大,from + size的结果必须小于或等于10000,而当前查询结果的窗 口为20000。 2、可以

    2024年02月06日
    浏览(51)
  • ES常用查询命令

    一、基本命令 1、获取所有_cat命令 2、获取es集群服务健康状态 epoch: 时间戳的 Unix 时间戳格式,表示快照生成的时间。 timestamp: 可读性更强的时间戳格式,表示快照生成的时间(08:06:34)。 cluster: Elasticsearch 集群的名称,这里是 \\\"es-cluster\\\"。 status: 集群的健康状态,这里是 \\\"y

    2024年02月04日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包