linux查询高速缓存大小,【Linux】Linux 的高速缓存

本文探讨Linux内存管理中的Cache和Buffer区别,如何通过free命令观察内存使用,并解释为何cached值大而free小。重点在于阐述Linux缓存策略对性能的影响和内存优化原理。

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

Linux与Win的内存管理不同,linux会尽量缓存内存以提高读写性能,通常叫做Cache Memory。通常使用free 命令查看内存的使用时,free 的值往往比较小!查看系统的 /proc/meminfo 文件,值Cached 就是高速缓存。

[root@rac3 ~]# cat /proc/meminfo

MemTotal:      4044784 kB

MemFree:        303340 kB

Buffers:         58196 kB

Cached:        3287252 kB

SwapCached:      27792 kB

Active:        1611588 kB

Inactive:      2021116 kB

HighTotal:           0 kB

HighFree:            0 kB

LowTotal:      4044784 kB

LowFree:        303340 kB

SwapTotal:     4192956 kB

SwapFree:      3652160 kB

Dirty:              16 kB

Writeback:           0 kB

AnonPages:      259492 kB

Mapped:         480964 kB

Slab:            62224 kB

PageTables:      23276 kB

NFS_Unstable:        0 kB

Bounce:              0 kB

CommitLimit:   6215348 kB

Committed_AS:  2194196 kB

VmallocTotal: 34359738367 kB

VmallocUsed:    264968 kB

VmallocChunk: 34359472887 kB

HugePages_Total:     0

HugePages_Free:      0

HugePages_Rsvd:      0

Hugepagesize:     2048 kB

使用free 命令查看内存:

[root@rac3 ~]# free

total         used                   free     shared    buffers     cached

Mem:       4044784    3740080     304704          0      56744    3286972

-/+ buffers/cache:     396364    3648420

Swap:      4192956     540900    3652056

其中第一行用全局角度描述系统使用的内存状况:

total       总物理内存 !

used     已使用内存,一般情况这个值会比较大,因为这个值包括了cache+应用程序使用的内存 即是used=buffers+cached

free        完全未被使用的内存

shared  应用程序共享内存

buffers  缓存,主要用于目录方面,inode值等(ls大目录可看到这个值增加)

cached  缓存,用于已打开的文件!

第二行描述应用程序的内存使用:

-/+ buffers/cache:     396364    3648420

-buffers/cache 396364  前个值表示应用程序使用的内存大小,used减去缓存值 即:-buffers/cache=used-buffers-cached

+buffers/cache 3648420 后个值表示所有可供应用程序使用的内存大小,free加上缓存值 即: +buffers/cache=free+buffers+cached

第三行表示swap的使用:

used——已使用

free——未使用

执行free 命令的结果中,used数值偏大,free数值偏小,free的值总是比较小是因为每当操作文件的时候,Linux都会尽可能的把文件缓存到内存里,当再次访问此数据的时候,可以直接从内存中取数据,避免磁盘操作!所以cached的数值非常的大,cache 部分内存是可回收的,操作系统会按照LRU算法淘汰冷数据。buffers也是可回收的,buffers和cache的区别,“Cache和Buffer是两个不同的概念,简单的说,Cache是加速“读”,而buffer是缓冲“写”,前者解决读的问题,保存从磁盘上读出的数据,后者是解决写的问题,保存即将要写入到磁盘上的数据。”

参考文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值