内存中缓存cache和缓冲buff的概念
  AWkq7aIjuRwO 2023年11月02日 33 0

内存中缓存cache和缓冲buff的概念_redis

total 总物理内存

used 已经使用的物理内存

free 没有使用过的物理内存

shared 多进程共享内存

buff/cache 读写缓存内存,这部分内存是当空闲来用的,当free内存不足时,linux内核会将此内存释放

buff 缓冲  为了提高操作系统的写能力

cache缓存   为了提高操作系统的读能力

Linux 操作系统

上图一共有2G内存  但是buff和cache就占了1.5个G了,这个并不是已经被读写完全使用了,这是优先将操作系统内存拿一部分出来,直接给缓存和缓冲区来用,未来有些数据读的时候很多东西首先被加载到缓存区里的 ,程序在读的时候优先都缓存区的内容,

缓存 是内存 平常存储在硬盘上 硬盘很慢 ,内存快

缓存本身要比 硬盘快

缓冲区 就是为了写

正常一次读写 在操作系统上 发起一次读写的时候

我们要写一个东西,比如word文档我们写很长一段,我们需要保存他,他并不是直接写到磁盘上  他首先将写的东西写到缓冲区里面区,然后等缓冲区积累了一定大小,比如1m或者4k  多少k的时候,他才把缓冲区内容 直接写到磁盘里面去,

比如我现在有1000斤苹果  我要把它运到隔壁屋里去

我是一个一个运快 还是找个筐子 一筐一筐运快

整个内容大小时不变的

只是说我们减少了 内存到磁盘之间交换的过程

交换的过程越多消耗的时间越多

计算机再写内容 首先写到缓冲区里面 缓冲区达到一定大小的时候 才把缓冲区写到硬盘里面去 这样为了减少内存和磁盘之间来回交互的过程,提高写的效率

缓冲 写

缓存 读

available 还可以被 应用程序 使用的物理内存

浏览器 也有缓存区

更详细的缓存介绍 如cdn缓存  浏览器缓存  看大师兄redis文档

若buff/cache过高而free过低,可用以下命令进行释放优化

echo 1 > /proc/sys/vm/drop_caches:表示清除pagecache。

echo 2 > /proc/sys/vm/drop_caches:表示清除回收slab分配器中的对象(包括目录项缓存和inode缓存)。slab分配器是内核中管理内存的一种机制,其中很多缓存数据实现都是用的pagecache。

echo 3 > /proc/sys/vm/drop_caches:表示清除pagecache和slab分配器中的缓存对象。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  4Txe79BjyroE   2023年11月19日   26   0   0 缓存
  eHipUjOuzYYH   2023年12月07日   27   0   0 数据乐观锁redis
  P3nxyT0LRuwj   2023年11月24日   63   0   0 缓存redis配置文件
  L83A5jZvvg3Q   2023年11月19日   34   0   0 源码包icoredis
  9JCEeX0Eg8g4   2023年11月22日   23   0   0 数据redis持久化
  L83A5jZvvg3Q   2023年11月19日   26   0   0 vim初始化物理内存
AWkq7aIjuRwO