Linux 内存 Buffers、Cache、Swap 及查看命令 free 详解
试验平台:
CentOS Linux release 7.6.1810
一、命令详解
1.free
命令详解
- 使用
free
命令查看内存信息
有些 openSUSE
低版本系统还会打印一个 -/+ buffers/cache
的信息:
二、Buffer/Cache 详解
1.Buffer
(缓冲),简单说,Buffer
的核心作用是用来缓冲,缓和冲击。为了提高 内存
和 硬盘
(或其他 I/O
设备的数据交换而设计)
打个比方:每秒写 100
次硬盘,对系统冲击很大,浪费了大量时间在忙着处理开始写和结束写这两件事。如果此时用个 buffer
暂存起来,变成每 10
秒写一次硬盘,对系统的冲击就很小,写入效率也会提高,极大缓和了冲击。
Buffer
主要是针对写操作设计的,更细的说是针对内存和硬盘之间的写操作来设计的,目的是将写的操作集中起来进行,减少磁盘碎片和硬盘反复寻址过程,提高性能。
2.Cache
(缓存),简单来说,Cache
的核心作用是加快取用的速度,暂时缓存起来。为了调高 CPU
和 内存
之间数据交换而设计
打个比方:比如一个很复杂的计算做完了,下次还要用结果,就把结果放手边一个好拿的地方存着,下次不用再算了。加快了数据取用的速度。
Cache
主要是针对读操作设计的
三、直观试验 Buffer/Cache
1.生成一个 1G
的文件
2.清空全部缓存
3.读取此文件,查看所消耗时间
4.再次读取此文件,并查看 buffer
的大小
四、强制回收缓存内存
注意:强制回收前需要先进行
sync
同步数据到硬盘操作,避免强制回收时造成数据丢失;建议只在cache
占用大量内存时导致系统内存不够用,系统运行缓慢的情况下使用
1,仅清除 pagecahe
缓存页
2,清除 dentries
目录项 和 inodes
3,三项都清楚,pagecahe 缓存页
,dentries 目录项
和 inodes
4.清理不生效原因可能是:buffer/cached
使用的内存并不大时,而系统本身确实不足时无法回收
5.手动增加 buffer/cache
测试
6.回收交换分区 Swap
注意:如果已经使用了
Swap
,且当前清空下+buffers/cache
还有空间,在执行swapoff -a
操作时,会触发把Swap
中的内容交换到内存中,数据不会丢失
Over~
版权协议须知!
本篇文章来源于 Uambiguous ,如本文章侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
1845 0 2020-12-16
博主卡片
运维时间
搭建这个平台,只为分享及记载自己所遇之事和难题。
现在时间 2025-04-18
今日天气
随机推荐
站点统计
- 文章总数:241篇
- 分类总数:29个
- 评论总数:15条
- 本站总访问量 403506 次
@ymidsuwfoa 这篇文章不错!
@svmuvwpuqi 真棒!
@smdxydrauu 博主太厉害了!
@xiaozi 最后的分享的镜像下载地址打不开 服务器没有开机吗?
@yuanyuan 为什么我的4b安装centos7.9 插上tf卡 显示不兼...
@Wong arrhenius 牛比
@MakerFace 厉害了!
@TongSir 老哥 更新下我的友链链接 https://blog.ton...