【Linux命令】查看资源使用情况--free命令详解

命令:free [参数 ]
命令参数:
-b  以Byte为单位显示内存使用情况。
-k  以KB为单位显示内存使用情况。
-m  以MB为单位显示内存使用情况。
-g   以GB为单位显示内存使用情况。
-o  不显示缓冲区调节列。
-s<间隔秒数>  持续观察内存使用状况。
-t  显示内存总和列。
-V  显示版本信息。
 
结果说明:
 
 
还有一个free -h命令,输出的结果会有好很多(目前的理解是根据内存大小搭配合适的单位):
mem:表示物理内存统计
swap:表示硬盘上交换分区的使用情况
当Linux的物理内存快要被耗尽时,系统会把一些进程占用的内存转移到 swap 区,当物理内存被释放一部分时,swap 区的一些内存占用又慢慢回到 mem 区,但是 mem 区却不再是之前的满负荷状态,而是有一部分 free 的内存!  
 
 
total:总计物理内存的大小。
used:已使用的空间。
free:可用的空间。 
Shared:多个进程共享的内存总额。
buff/cache:磁盘缓存的大小。
buff/cache:表示物理内存的缓存统计
              buff/cache主要干啥来的?
                Linux具有先进的缓存机制,这里的buffer指Linux内存的:Buffer cache。这里的cache指Linux内存中的:Page cache。翻译成中文可以叫做缓冲区缓存和页面缓存。Buffer cache主要是设计用来在系统对块设备进行读写的时候,对块进行数据缓存的系统来使用。Page cache主要用来作为文件系统上的文件数据的缓存来用,尤其是针对当进程对文件有read/write操作的时候。事实上page cache也负责了大部分的块设备文件的缓存工作。但是在进行了大量文件操作之后,缓存会把内存资源基本用完,虽然文件读取效率提高了,但是物理内存会被逐渐用完。
               原来是因为系统进行了频繁的文件读写操作,但是为什么操作系统不会主动回收呢,原来是因为drop_caches 的默认参数设置的就是不释放。
               drop_caches 的值可以是 0-3 之间的数字,代表不同的含义:
               0:不释放(系统默认值)
               1:释放页缓存
               2:释放dentries和inode
               3:释放所有缓存
               修改:# echo 1 > /proc/sys/vm/drop_caches
                    Linux内核会在内存将要耗尽的时候,触发内存回收的工作,以便释放出内存给急需内存的进程使用。一般情况下,这个操作中主要的内存释放都来自于对buffer/cache的释放。尤其是被使用更多的cache空间。既然它主要用来做缓存,只是在内存够用的时候加快进程对文件的读写速度,那么在内存压力较大的情况下,当然有必要清空释放cache,作为free空间分给相关进程使用。
available:真正剩余的可被程序应用的内存数
 
看起来,free和available表达的是同一个意思,都是可用的空间,他们什么区别呢?
free 是真正尚未被使用的物理内存数量。
available 是应用程序认为可用内存数量,Linux 内核为了提升磁盘操作的性能,会消耗一部分内存去缓存磁盘数据,就是我们介绍的 buffer 和 cache。所以对于内核来说,buffer 和 cache 都属于已经被使用的内存。当应用程序需要内存时,如果没有足够的 free 内存可以用,内核就会从 buffer 和 cache 中回收内存来满足应用程序的请求。从应用程序的角度来说,available  = free + buffer + cache。请注意,这只是一个很理想的计算方式,实际中的数据往往有较大的误差。
 
 
总结:
1)当物理内存快被耗尽时,系统并没有崩溃,而是拿 swap 做临时内存,当两者都耗尽,系统 OutofMemory
2)物理内存达到峰值,系统中一些不常用的进程内存占用被提到 swap 区
3)当 Men 区的资源进行释放时,被挪到 swap 的内存并不会全部回来,随着系统或者程序的唤醒才会慢慢回到 men 区
4)swap 是内存不够时,磁盘虚拟出来的内存,磁盘主要是 I/O 级别的操作,并不是系统内核级别的操作,处理速度跟 mem 区不是一个等级
 
除了free命令以外,还有很方式也可以查看资源使用情况
1.命令:
$cat /proc/meminfo
MemTotal:        1882308 kB
MemFree:          660832 kB
MemAvailable:    1256708 kB
Buffers:               0 kB
Cached:           736252 kB
SwapCached:            4 kB
Active:           679104 kB
Inactive:         394796 kB
Active(anon):     281284 kB
Inactive(anon):    86380 kB
Active(file):     397820 kB
Inactive(file):   308416 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:       1679356 kB
SwapFree:        1675508 kB
Dirty:                 8 kB
Writeback:             0 kB
AnonPages:        337696 kB
Mapped:            2702
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值