清除缓存执行命令
sync; echo 3 > /proc/sys/vm/drop_caches
清除缓存的参数放在这个目录下.
cat /proc/sys/vm/drop_caches
参数介绍
0 // 默认参数为 0.
1 - 清空页面缓存.
2 - 清空inodes(索引) 和 目录树 缓存
3 - 清空所有缓存.
执行
在清空缓存之前, 请使用 sync 命令 同步到磁盘
// 将缓存同步到磁盘
# sync;
// 查看内存占用
# free -h
物理内存 内存总大小 已占用的大小 空闲的大小 共享内存大小 缓冲区/缓存大小 可用内存大小
total used free shared buff/cache available
Mem: 1.8G 664M 590M 780K 582M 1.0G
虚拟内存
Swap: 0B 0B 0B
// 清空缓存
# echo 3 > /proc/sys/vm/drop_caches
// 再次调用 free -h 查看内存占用
# free -h
线上环境切勿 随意执行此命令.
buff(缓存区): 尚未 “写入” 磁盘的东西. (用于存放要输出到块存储的数据)
cache(缓存): 从磁盘 " 读取 " 并存储在内存中以供以后使用的东西.(存在于cpu和内存之间的缓冲区,存放的是从 disk上读取到的数据)
随意的清除线上的 buff/cached 不太友好.
参考链接
Linux中cache和buff的区别
buff/cached 详细解读
linux free命令中buffer与cache的区别
================================================
A buffer is something that has yet to be “written” to disk.
A cache is something that has been “read” from the disk and stored for later use.
buffer:
缓冲区,一个用于存储速度不同步的设备或优先级不同的设备之间传输数据
的区域。通过缓冲区,可以使进程之间的相互等待变少,从而使从速度慢的设备读入数据
时,速度快的设备的操作进程不发生间断。
cache:
高速缓存,是位于CPU与主内存间的一种容量较小但速度很高的存储器。由于
CPU的速度远高于主内存,CPU直接从内存中存取数据要等待一定时间周期, Cache中保存
着CPU刚用过或循环使用的一部分数据,当CPU再次使用该部分数据时可从Cache中直接调
用,这样就减少了CPU的等待时间,提高了系统的效率。Cache又分为一级Cache(L1 Cache)
和二级Cache(L2 Cache),L1 Cache集成在CPU内部,L2 Cache早期一般是焊在主板上,现
在也都集成在CPU内部,常见的容量有256KB或512KB L2 Cache。
当你读写文件的时候,Linux内核为了提高读写性能与速度,会将文件在内存中进行缓存,
这部分内存就是Cache Memory(缓存内存)。即使你的程序运行结束后,Cache Memory也不会
自动释放。这就会导致你在Linux系统中程序频繁读写文件后,你会发现可用物理内存会很少。
其实这缓存内存(Cache Memory)在你需要使用内存的时候会自动释放,所以你不必担心没有
内存可用。如果你希望手动去释放Cache Memory也是有办法的。
如何释放Cache Memory(缓存内存), 用上面的命令可以释放Cache Memory
========================================================
free命令中的buffer和cache:(它们都是占用内存):
buffer : 作为buffer cache的内存,是块设备的读写缓冲区
cache: 作为page cache的内存, 文件系统的cache