首页 > 运维 > linux运维 > 正文

一文解释Linux 的内存、Swap、Cache、Buffer

蓮花仙者
发布: 2025-07-15 10:04:16
原创
986人浏览过

通过free命令查看linux内存的使用情况

一文解释Linux 的内存、Swap、Cache、Buffer

total:系统总内存大小。 used:已使用的内存大小(包括cachedbuffers以及shared部分)。 free:空闲的内存大小。 shared:进程间共享的内存(通常可以忽略)。 buffers:用于缓存已写入内容的内存大小,以便快速响应请求,后续数据会定期刷新到磁盘。 cached:用于缓存已读取内容的内存大小,以便下次查询时快速返回。 -/+ buffers/cache分为两部分: - buffers/cache:实际正在使用的内存大小(不包括bufferscached部分,因为这些部分可以被释放),其值为used - buffers - cached+ buffers/cache:可用的内存大小(不仅仅是free部分),其值为free + buffers + cachedSwap:硬盘上的交换分区使用情况。当+buffers/cache表示的可用内存用完时,新请求会将内存中的部分数据写入磁盘,从而将磁盘空间用作虚拟内存。

Buffer和Cache介绍

一文解释Linux 的内存、Swap、Cache、Buffer

Cache(缓存)主要是为提高CPU和内存之间的数据交换速度而设计的。Buffer(缓冲)是为了提高内存和硬盘(或其他I/O设备)之间的数据交换速度而设计的。

Cache主要针对操作设计。CPU内部有一级、二级、三级缓存,用于存储常用指令和数据。由于CPU处理速度远高于内存速度,缓存可以防止CPU资源闲置。大部分缓存数据占用的是内存空间,即上文提到的Cached部分。

Buffer主要针对操作设计,具体来说是针对内存和硬盘之间的写操作。它将写操作集中起来进行,减少磁盘碎片和硬盘的反复寻址过程,从而提高性能。Linux系统中有一个守护进程会定期清空Buffer中的内容,将其写入硬盘。手动执行sync命令也会触发此操作。

常见症状

症状一:在Linux中频繁存取文件,物理内存很快用光,而cached一直在增长。

解释:Linux会将每次请求过的数据缓存起来,CPU处理速度远高于内存速度,因此可以从缓存中快速命中结果返回。

症状二:Swap被占用。

存了个图
存了个图

视频图片解析/字幕/剪辑,视频高清保存/图片源图提取

存了个图 17
查看详情 存了个图

解释:内存可能不够用了,才会占用Swap。因此,Swap的使用情况可以作为服务器监控的一项指标。

手动清理Swap和buffers/cache

清理Swap:

swapoff -a && swapon -a
登录后复制

操作说明:如果已经使用了Swap,且当前清空后+buffers/cache还有空间,执行swapoff -a操作时,会将Swap中的内容交换到内存中,数据不会丢失。

清理buffers/cache:

sync; sync; sync; && echo 3 > /proc/sys/vm/drop_caches
sleep 2
echo 0 > /proc/sys/vm/drop_caches
登录后复制

操作说明:

sync:将缓存的内容写入硬盘。 echo 3 > /proc/sys/vm/drop_caches:将drop_caches的值改为3,系统会清理缓存内容,默认值为0。 sleep 2:等待一段时间,防止上一步未执行完毕。 echo 0 > /proc/sys/vm/drop_caches:将drop_caches的值改回默认值。

总结

通过上述分析可知,当空闲物理内存不多时,不一定表示系统运行状态不佳,因为cachebuffer部分可以随时被重用,某种程度上,这两部分内存也可以视为额外的空闲内存。

如果Swap被频繁调用,bibo长时间不为0,才是判断内存资源是否紧张的依据。通过free命令查看资源时,主要关注-/+ buffers/cache的值即可判断内存是否足够。

以上就是一文解释Linux 的内存、Swap、Cache、Buffer的详细内容,更多请关注php中文网其它相关文章!

相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号