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分配器中的缓存对象。