释放Linux系统缓存

清理Linux缓存使用下面的命令

  sync; echo 3 > /proc/sys/vm/drop_caches

需求与原理

下面介绍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:

To free pagecache

$sync; echo 1>/proc/sys/vm/drop_caches

To free dentries and inodes:

$sync; echo 2>/proc/sys/vm/drop_caches

To free pagecache, dentries and inodes:

$sync; echo 3>/proc/sys/vm/drop_caches

注意,释放前最好sync一下,防止丢失数据。

free命令中的buffer和cache:(它们都是占用内存):

buffer : 作为buffer cache的内存,是块设备的读写缓冲区

cache: 作为page cache的内存, 文件系统的cache

原文地址:https://www.cnblogs.com/guanghe/p/8695873.html

时间: 2024-10-29 19:12:03

释放Linux系统缓存的相关文章

手动释放linux的缓存

To free pagecache: echo 1 > /proc/sys/vm/drop_caches;to free dentries and inodes: echo 2 > /proc/sys/vm/drop_caches;to free pagecache, dentries and inodes: echo 3 >/proc/sys/vm/drop_caches. 手动释放linux的缓存

Centos释放linux系统内存

Linux中频繁读写文件时,内存资源被耗尽,当程序结束后,内存不会释放需要清除缓存.缓存的类别有dentry,buffer cache,page cache. echo 1 > /proc/sys/vm/drop_cache #释放page cahce echo 2 > /proc/sys/vm/drop_cache #释放dentry和inode echo 3 > /proc/sys/vm/drop_cache #释放page cache,dentry,inode 注:Dentry用来

linux系统缓存机制

1.缓存机制 为了提高文件系统性能,内核利用一部分物理内存分配出缓冲区,用于缓存系统操作和数据文件,当内核收到读写的请求时,内核先去缓存区找是否有请求的数据,有就直接返回,如果没有则通过驱动程序直接操作磁盘. 缓存机制优点:减少系统调用次数,降低CPU上下文切换和磁盘访问频率. CPU上下文切换:CPU给每个进程一定的服务时间,当时间片用完后,内核从正在运行的进程中收回处理器,同时把进程当前运行状态保存下来,然后加载下一个任务,这个过程叫做上下文切换.实质上就是被终止运行进程与待运行进程的进程切

释放Linux系统预留的硬盘空间【转】

http://www.cnblogs.com/ggjucheng/archive/2012/10/07/2714294.html 前言 大多数文件系统都会保留一部分空间留作紧急情况时用(比如硬盘空间满了),这样能保证有些关键应用(比如数据库)在硬盘满的时候有点余地,不致于马上就 crash,给监控系统和管理员一点时间去察觉.不过有时候这部分预留的硬盘空间不用的话有点浪费.如何释放这部分系统预留的空间呢? 在 Linux ext2/ext3/ext4 文件系统上通常默认预留5%的硬盘空间,如果硬盘

Linux 释放cache化缓存

free -g查看空余内存以及已使用内存 原文  https://blog.csdn.net/tomspcc/article/details/78131468 机械硬盘的读写速率大多在 70M/s 左右,如果把经常读写的文件放在内存中,这会大幅提高文件的读写速率,提高系统的效率.尤其是访问量大的网站,这样解决了磁盘IO的问题不过现在都是固态硬盘,常见的读写速率是 0.5G/s - 1 G/s - 3.5G/s 或者更高,不过这速度在内存的速度上还是很逊色的,据说DDR3,内存数据带宽就=12.8

Linux系统清除缓存

缓存机制介绍 在Linux系统中,为了提高文件系统性能,内核利用一部分物理内存分配出缓冲区,用于缓存系统操作和数据文件,当内核收到读写的请求时,内核先去缓存区找是否有请求的数据,有就直接返回,如果没有则通过驱动程序直接操作磁盘.缓存机制优点:减少系统调用次数,降低CPU上下文切换和磁盘访问频率.CPU上下文切换:CPU给每个进程一定的服务时间,当时间片用完后,内核从正在运行的进程中收回处理器,同时把进程当前运行状态保存下来,然后加载下一个任务,这个过程叫做上下文切换.实质上就是被终止运行进程与待

linux系统dns缓存服务nscd

众所周知,Linux本身是不带DNS缓存的. 可以安装nscd来开启linux系统dns缓存. 1.安装: yum -y install nscd 2.修改配置文件: vim /etc/nscd.conf logfile                 /var/log/nscd.log threads                 4 max-threads             32 server-user             nscd debug-level            

Ubuntu等Linux系统清除DNS缓存的方法

buntu等Linux系统清除DNS缓存的方法 直接说方法: 如果系统下有nscd,那么就直接 sudo /etc/init.d/nscd restart 如果没有也没关系,网上接受的方法大都是 sudo aptitude install nscd sudo /etc/init.d/nscd restart 其实我们也可以直接 sudo /etc/init.d/dns-clean start 来完成的.

Linux性能优化实战:如何利用系统缓存优化程序的运行效率?(17)

一.缓存命中率 1.引子 1.我们想利用缓存来提升程序的运行效率,应该怎么评估这个效果呢? 用衡量缓存好坏的指标 2.有没有哪个指标可以衡量缓存使用的好坏呢? 缓存命中率 3.什么是缓存命中率? 所谓缓存命中率,是指直接通过缓存获取数据的请求次数,占所有数据请求次数的百分比.命中率越高,表示使用缓存带来的收益越高,应用程序的性能也就越好 2.查看系统命中情况的工具 1.缓存在高并发系统的应用 实际上.缓存是现在所有高并发系统必须的核心模块,主要作用就是把经常访问的数据(也就是热点数据),提取读入