问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

linux free命令详解和使用实例

发布网友 发布时间:2024-01-18 11:17

我来回答

1个回答

热心网友 时间:2024-11-11 07:38

1.命令格式:

free [参数]

2.命令功能:

free 命令显示系统使用和空闲的内存情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。共享内存将被忽略

3.命令参数:

-b 以Byte为单位显示内存使用情况。

-k 以KB为单位显示内存使用情况。

-m 以MB为单位显示内存使用情况。

-g   以GB为单位显示内存使用情况。

-o 不显示缓冲区调节列。

-s间隔秒数 持续观察内存使用状况。

-t 显示内存总和列。

-V 显示版本信息。

4.使用实例:

实例1:显示内存使用情况

命令:

复制代码

   

代码如下:

free

   free -g

   free -m

输出:

复制代码

   

代码如下:

[root@SF1150 service]# free

   total used free shared buffers cached

   Mem: 32940112 30841684 2098428 0 4545340 11363424

   -/+ buffers/cache: 14932920 18007192

   Swap: 32764556 1944984 30819572/pp

   [root@SF1150 service]# free -g

   total used free shared buffers cached

   Mem: 31 29 2 0 4 10

   -/+ buffers/cache: 14 17

   Swap: 31 1 29/pp

   [root@SF1150 service]# free -m

   total used free shared buffers cached

   Mem: 32168 30119 2048 0 4438 11097

   -/+ buffers/cache: 14583 17584

   Swap: 31996 1899 30097

free命令输出内容详细说明:

下面是对这些数值的解释:

total:总计物理内存的大小。

used:已使用多大。

free:可用有多少。

Shared:多个进程共享的内存总额。

Buffers/cached:磁盘缓存的大小。

第三行(-/+ buffers/cached):

used:已使用多大。

free:可用有多少。

第四行是交换分区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

输出:

复制代码

   

代码如下:

[root@SF1150 service]# cat /proc/meminfo

   MemTotal: 32940112 kB

   MemFree: 2096700 kB

   Buffers: 4545340 kB

   Cached: 11364056 kB

   SwapCached: 1896080 kB

   Active: 22739776 kB

   Inactive: 7427836 kB

   HighTotal: 0 kB

   HighFree: 0 kB

   LowTotal: 32940112 kB

   LowFree: 2096700 kB

   SwapTotal: 32764556 kB

   SwapFree: 30819572 kB

   Dirty: 164 kB

   Writeback: 0 kB

   AnonPages: 14153592 kB

   Mapped: 20748 kB

   Slab: 590232 kB

   PageTables: 34200 kB

   NFS_Unstable: 0 kB

   Bounce: 0 kB

   CommitLimit: 49234612 kB

   Committed_AS: 23247544 kB

   VmallocTotal: 34359738367 kB

   VmallocUsed: 278840 kB

   VmallocChunk: 34359459371 kB

   HugePages_Total: 0HugePages_Free: 0HugePages_Rsvd: 0Hugepagesize: 2048 kB

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

1.减少缓冲与页面cache的大小,

2.将系统V类型的内存页面交换出去,

3.换出或者丢弃页面。(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的内存太少了,也是该考虑优化程序或加内存了。

实例2:以总和的形式显示内存的使用信息

命令:free -t

输出:

复制代码

   

代码如下:

[root@SF1150 service]# free -t

   total used free shared buffers cached

   Mem: 32940112 30845024 2095088 0 4545340 11364324

   -/+ buffers/cache: 14935360 18004752Swap: 32764556 1944984 30819572Total: 65704668 32790008 32914660[root@SF1150 service]#

说明:

实例3:周期性的查询内存使用信息

命令:free -s 10

输出:

复制代码

   

代码如下:

[root@SF1150 service]# free -s 10

   total used free shared buffers cached

   Mem: 32940112 30844528 2095584 0 4545340 11364380

   -/+ buffers/cache: 14934808 18005304Swap: 32764556 1944984 30819572

   total used free shared buffers cached

   Mem: 32940112 30843932 2096180 0 4545340 11364388

   -/+ buffers/cache: 14934204 18005908Swap: 32764556 1944984 30819572

说明:

每10s 执行一次命令

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
个人账户养老金预测公式:现有5万元,缴费20年,能领多少钱? 临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 呼伦贝尔油玉不绝电子商务有限公司怎么样? 如何避免wps卡顿? 属鼠的男人找对象是属什么,属鼠的人和什么属相合 96年鼠的姻缘在哪年 属相相合年份运势提升 2024属鼠找对象属什么最佳 黑客攻击网站能报案吗 三剑客奇迹中,骑士怎么加点最好 2020年毛姐新款服装推荐美美的景色搭配夏天女士格子装非常好看_百度知 ... 七子之歌怎么背 我去年有尿路感染,今年频繁复发,只有尿频的症状,每次输液5天,请问是我... 三剑客奇迹如何把装备加13 三剑客奇迹一区怎么复制白装备啊,请说的详细点,谢谢 我老公尿血,去医院检查说是泌尿系统感染打了一天点滴还没有改善,怎么办... 什么网卖东西便宜?什么网不需要运费? 数学中频率能用百分数表示吗?用了算不算错? m3u8转mp4格式工厂怎么用? 饺子是冷水下锅吗 没有运费又便宜的网站 老板拖欠工资一家人生活难以维持请帮帮我 问首歌,里面有“你说从此没有天长和地久” 拉萨市区位现状 未满一年怎么改第二次 甘肃酒泉大厂河黑老板工人每天工作十八九小时导致枸杞工人重病在身... 我该有自己的房间了,但是我想要的那间屋子又有电脑又有电视,还有路由器... 我一个手机号注册了两个,另外一个登不上了,怎么办? 西双版纳到腾冲怎么走最方便 一直纠缠的女人突然离开了 对不纠缠他的女人男人会失落吗 一年只能改一次怎么改第二次? 一个女人要离开 一个男人感到很失落 不开心 港科大排名 卖服装说说经典语句发朋友圈衣服新款话语 一年只能改一次怎么改第二次? 一道生物高考题 请高人解答 非常谢谢了 怎么鉴定自己银手镯的真假 男人出轨可以让他净身出户吗 我的微信忘记密码了,是以前的手机号,现在停用了,我该怎么找回密... 请帮忙解决一个生物问题,谢谢 老公私扣老婆驾驶证犯法吗 男方出轨离婚能净身出户吗 孟津微信公众号5个 如果电动扫地车在工作中扬尘该怎么办 高三级客车是什么车 甜点心大作战动漫如何下载 冬季去哈尔滨旅游穿什么衣服合适 ...出现植物神经失调,脸发热、头晕、失眠、神志不清的情况怎么调理? 抖音甜甜圈大战游戏怎么玩的