内存查看工具之free

本文深入解析Linux下free命令的使用方法及内存状态解读,包括buffers与cached的作用,揭示了系统内存分配与缓存机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基本使用

free是一个内存查看工具,使用起来非常简单:

free -m ## 单位是M 也可以是-g -k
[KentZhang@ALVPCFLKF-192-168-29-61 707]$ free -m
             total       used       free     shared    buffers     cached
Mem:         32186      31827        359          0        704      22448
-/+ buffers/cache:       8674      23511
Swap:         7999         11       7988
	

解释含义

从第三行起,解释其含义。

第三行:total 为 32186M,表示系统的物理内存;used 为31827M,表示系统已经使用的内存,注意,这里的used包含了后面的buffers和cached;shared表示共享内存的大小;buffers和cached则是表示用于特殊目的的内存,其中的一个目的是为了提高IO访问速度,buffers是用来写的,cached是用来读的。

第四行:used 为8674M,表示系统实际使用的内存,这些内存无法再被使用,free为23511M,表示可使用的内存。

显然,23511 = 359 + 704 + 22448 8674 = 32186 - 23511

第五行: 是交换区的使用情况,这里暂且不谈。

cache和buffer

内存的访问速速很难快,是纳秒级别的,相对硬盘访问的速度就很慢,是毫秒级的,前者是后者的数万倍。为了解决这个矛盾,于是系统就有了cache和buffer。

有时候,一个硬盘的相同的内容,有可能在短时间内被读出多次,比如一个机器被多个用户使用,于是系统在第一次从硬盘读出数据时,就存入cache中,下次再读的话,就直接从cache读取,那么速度就快了很多。

同样,在向硬盘写入数据时,每次写入数据也是很费时的,要尽量减少写硬盘的次数,于是系统不会立刻把数据写入硬盘,而是先写入buffer中,等到达到一定量的数据,再一次性写入硬盘。这样,对应用程序而言,写数据的效率提高了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值