Linux中的buff/cache内存

我们用free、top等相关能够查询到当前内存的使用情况的命令时,总会有一个buff/cache让我们很困惑。

buffer

即写如磁盘时,先保存到磁盘缓冲区(buffer),然后再写入到磁盘。

cache

即读磁盘时,数据从磁盘读出后,暂留在缓冲区(cache),为后续程序的使用做准备。

如何划分buffer/cache(已使用 or 空闲)

  1. 操作系统的角度:这块内存确实被操作系统使用了
  2. 用户角度:如果用户要使用,这块内存是可以很快被回收而被用户空间程序使用,因此从用户角度而言这块内存应被划为空闲状态

Linux这种机制的好处

这是Linux一种非常优秀的设计,目的就是为了提升磁盘IO的性能,从低速的块设备上读取的数据会暂时保存在内存中,即使数据在当时已经不再需要了,但在应用程序下一次访问该数据时,它可以从内存中直接读取,绕开了低速的块设备,从而提高系统的整体性能。

为了提高系统性能和不浪费内存,linux把多的内存做了cache,以提高io速度.你的那些内存并没有被占用。

原文地址:https://www.cnblogs.com/zuxing/p/11393451.html

时间: 2024-10-02 11:08:58

Linux中的buff/cache内存的相关文章

Linux中查看进程占用内存和系统资源情况的命令

用 'top -i' 看看有多少进程处于 Running 状态,可能系统存在内存或 I/O 瓶颈,用 free 看看系统内存使用情况,swap 是否被占用很多,用 iostat 看看 I/O 负载情况... 还有一种办法是 ps -ef | sort -k7 ,将进程按运行时间排序,看哪个进程消耗的cpu时间最多. top: 主要参数 d:指定更新的间隔,以秒计算. q:没有任何延迟的更新.如果使用者有超级用户,则top命令将会以最高的优先序执行. c:显示进程完整的路径与名称. S:累积模式,

buff/cache内存缓存过大,设置定时清理

buff/cache内存缓存过大,设置定时清理 buff/cache居然占用内存达到10个G的内存,解决方法:1.编写脚本 vim cleanCache.sh 编写内容如下: echo 1 > /proc/sys/vm/drop_caches ehco 2 > /proc/sys/vm/drop_caches ehco 3 > /proc/sys/vm/drop_caches 2.给脚本添加执行权限chmod 777 cleanCache.sh3.配置定时执行脚本crontab -e (

Linux中Buffer和Cache的区别

1. Cache:缓存区,是高速缓存,是位于CPU和主内存之间的容量较小但速度很快的存储器,因为CPU的速度远远高于主内存的速度,CPU从内存中读取数据需等待很长的时间,而  Cache保存着CPU刚用过的数据或循环使用的部分数据,这时从Cache中读取数据会更快,减少了CPU等待的时间,提高了系统的性能. Cache并不是缓存文件的,而是缓存块的(块是I/O读写最小的单元):Cache一般会用在I/O请求上,如果多个进程要访问某个文件,可以把此文件读入Cache中,这样下一个进程获取CPU控制

Linux中的Buffer Cache和Page Cache

http://wenku.baidu.com/view/dd677d2fcfc789eb172dc868.html http://bbs.chinaunix.net/thread-3759086-1-1.html http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=4189715&extra=page%3D1%26filter%3Dauthor%26orderby%3Ddateline%26orderby%3Ddateline 了解下

Linux下如何释放cache内存

转自:http://www.linuxidc.com/Linux/2015-02/112685.htm 在Linux下频繁存取文件后,物理内存会很快被用光,当程序结束后,内存不会被正常释放,而是一直作为caching.这个问题,貌似有不少人在问,不过都没有看到有什么很好解决的办法.那么我来谈谈这个问题. 先来说说free命令 [[email protected] ~]# free -m    total used free shared buffers cached    Mem: 249 16

Linux中内存查看命令free详解(转)

add by zhj:-/+ buffers/cache行的free列就是实际未使用的内存.free -m中的参数-m是指以MB为单元输出数据 原文:http://liustb.blog.163.com/blog/static/1337080192011718112434416/ free命令用来查看内存的使用情况,与Top命令相比,开销较小. $free –m total          used        free        shared         buffers      

在Linux中通过Top运行进程查找最高内存和CPU使用率

按内存使用情况查找前15个进程,在批处理模式下为“top” 使用top命令查看有关当前状态,系统使用情况的更详细信息:正常运行时间,负载平均值和进程总数. 分类:Linux命令操作系统 2016-07-27 00:00:00 类似于前面的技巧有关找出由RAM和CPU使用率最高的进程 ,还可以使用top命令来查看相同的信息. 也许有相比前一个这种方法的一个额外的优势:顶级的“头”,提供有关当前状态和使用该系统的额外信息:正常运行时间,平均负载和进程总数,仅举几例例子. 按顶部查找按内存使用的进程

linux中进程管理的三大工具及进程查看命令

1.进程概念 通俗的讲进程就是一个运行起来的程序,只占用系统的内存空间,并且有唯一的进程标识符(PID),但和程序又有区别,程序是指令加数据,是一个进程指令的集合,可以启用一个或者多个进程,是静态的,而且长久保存.进程是动态的,有生命周期,是动态产生的,进程一旦消失,内存空间就会跟着释放. linux内核存储进程的信息的格式是task_struct,多个task_struct组成链表task_list,通过这个两个来定义和管理进程. 进程的分类: 1.根据不同模式: 1.1.守护进程 :系统一开

free:一个在 Linux 中检查内存使用情况的标准命令

摘要: 我们都知道, IT 基础设施方面的大多数服务器(包括世界顶级的超级计算机)都运行在 Linux 平台上,因为和其他操作系统相比, Linux 更加灵活.有的操作系统对于一些微乎其微的改动和补丁更新都需要重启,但是 Linux 不需要,只有对于一些关键补丁的更新, Linux 才会需要重启. 我们都知道, IT 基础设施方面的大多数服务器(包括世界顶级的超级计算机)都运行在 Linux 平台上,因为和其他操作系统相比, Linux 更加灵活.有的操作系统对于一些微乎其微的改动和补丁更新都需