`

linux free命令中buffer与cache的区别

 
阅读更多

~$ free
                    total             used           free     shared   buffers     cached
Mem:       1025204     981636      43568          0      38244     387808
-/+ buffers/cache:       555584      469620
Swap:      1931256    162948      1768308

 

也可以通过$watch free看到动态信息

以上为free命令的输出内容,从中可以得到当前系统内存使用情况.系统的可用内存应该看第二行数据,

-buffers/cache=used-buffers-cached
+buffers/cache=free+buffers+cached

因为第一行的used包含了系统使用的buffer及cache,而free则没包含buffer及cache,这部分也是可以使用的部分.

如上所示555584为真正的系统使用内存情况,而469620为系统真正的可用内存情况.

 

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

 

分享到:
评论

相关推荐

    linux内存中buffer与cache的区别

    ### Linux内存中Buffer与Cache的区别 #### 概述 Linux操作系统在管理内存资源时采用了高效且灵活的方法。当我们使用`free`命令查看系统的内存使用情况时,可能会注意到一个现象:即使系统似乎没有运行太多的应用...

    Linux操作系统中内存buffer和cache的区别.pdf

    ### Linux操作系统中内存buffer和cache的区别 #### 一、引言 在Linux操作系统中,内存管理是一项关键的技术,它直接影响到系统的性能和稳定性。本文将详细介绍Linux系统中内存buffer和cache的区别及其工作原理,...

    Linux操作系统中内存buffer和cache的区别.docx

    在 Linux 操作系统中,free 命令可以显示系统的内存使用情况,其中包括 buffer 和 cache 的数量。通过 free 命令,我们可以看到系统的总物理内存、已分配的内存、未被分配的内存、缓存的数量等信息。 Buffer 和 ...

    Linux内存buffer和cache的区别

    ### Linux内存管理中的Buffer与Cache区别详解 #### 一、引言 在现代操作系统中,内存管理是一项极其重要的任务,特别是在Linux这样的多用户多任务环境中。Linux系统在内存管理方面采取了许多高效的策略来提高系统...

    linux free命令详解

    Linux操作系统中,监控系统资源的使用情况是日常管理的重要一环,其中`free`命令便是用来查看系统内存使用状态的工具。本文将详细介绍`free`命令的使用方法和解析其输出结果,以帮助用户更好地理解系统内存的运行...

    linux内存中cache分析

    在Linux内核中,内存的使用效率通过缓存(Cache)机制得到了显著提升。本篇文章将深入探讨Linux内存中的缓存分析,以及如何利用工具进行理解和管理。 首先,我们来了解Linux内存的基本结构。Linux内存分为物理内存...

    linux下释放cache内存

    为了提升文件系统访问速度,Linux内核会利用空闲内存来缓存文件数据(称为Page Cache)和其他类型的缓存(如Buffer Cache)。这样做的目的是减少磁盘I/O操作,从而提高系统性能。 然而,在某些情况下,用户可能会...

    Linux的free命令来显示系统中空闲和已使用的内存.docx

    Linux中的`free`命令是一个非常实用的工具,用于监控系统中的内存使用情况,包括空闲、已用、共享、缓存等各项指标。这个命令对于系统管理员来说是必不可少的,因为它可以帮助他们确保服务器的健康运行,及时发现...

    free命令详解

    #### buffer与cache的区别 - **buffers**: 是指系统用来做块设备的缓冲区大小。当数据写入磁盘时,这些数据会先写入buffers,然后由操作系统决定何时同步到磁盘。 - **cached**: 主要用于存储已经读取过的文件内容,...

    linux系列之常用运维命令整理笔录.docx

    * used:表示系统分配给缓存使用的数量(这里的缓存包括 buffer 和 cache) * free:表示未分配的物理内存总数 * shared:表示共享内存 * buffers:系统分配但未被使用的缓冲区大小 2. top 命令 top 命令可以实时...

    Linux 通用块设备层基础之buffer_head .

    通过`kmem_cache_alloc()`和`kmem_cache_free()`函数,内核能够高效地分配和回收`buffer_head`对象,这不仅提高了内存使用效率,也简化了内核代码的设计。 #### 总结 `buffer_head`是Linux内核中用于描述和管理块...

    简单了解Linux性能监控命令free

    linux提供了很多命令来协助我们快速定位到错误,free命令是Linux最常用的命令之一:它可以查看系统的内存状况,包括服务器的总内存,已经使用的内存和剩下未被使用的内存,以及缓冲区和缓存各自占用的内存情况。...

    Linux的free命令详解-内存是拿来用的

    "Linux的free命令详解" Linux的free命令详解命令详解-内存是拿来用的内存是拿来用的绍linux的free命令。我告诉有朋友我一直用linux。他问我了一下我为什么linux使用的内存这么高。他讲他1G的内在free才232M。讲win ...

    Linux下应用程序到底使用了多少内存

    本文将深入探讨Linux下应用程序的内存使用情况,并解析`top`命令和`free`命令提供的内存信息。 首先,当我们通过`top`命令查看内存使用情况时,要注意它显示的内存占用并不完全代表应用程序实际消耗的内存。这是...

    linux可用内存足够为什么还用swap.docx

    这里需要注意的是,Linux系统中的“可用内存”(available)是一个更为综合的指标,它包括了真正意义上的空闲内存(free)加上部分buffer/cache可以快速释放出来的内存量。从上述数据可以看出,尽管buffer/cache占用...

    linux从做系统学习笔记

    Linux系统的存储体系结构涉及缓冲(BUFFER)与缓存(CACHE)的概念与区别,内存管理方案以及页面置换算法。同时,Linux提供了各种用于监控系统资源使用情况的命令,如FREE、VMSTAT和SWAP,它们有助于了解系统内存的...

    手工释放linux内存_procsysvmdrop_caches.pdf

    Linux 操作系统为了提高文件读取效率,采取了两种主要 Cache 方式:Buffer Cache 和 Page Cache。前者针对磁盘块的读写,后者针对文件 inode 的读写。这些 Cache 有效缩短了 I/O 系统调用(比如 read、write、...

    Linux性能优化-内存篇_WEL.pdf

    Linux系统提供了多种缓存机制,例如,Page Cache、Buffer Cache等。 3. 性能优化工具 3.1 top命令 top命令是一个常用的性能优化工具,可以实时显示系统的CPU、内存、进程等信息。 3.2 vmstat命令 vmstat命令...

    手工释放linux内存.pdf

    Linux内存管理机制的一个显著特点是充分利用空闲内存作为缓存(包括Buffer Cache和Page Cache)。这样做能够极大地提高磁盘I/O效率,从而提升应用程序的整体性能。但是,这种设计也可能会让初学者感到困惑,尤其是在...

    Linux系统问题排查

    通过对Linux系统中的CPU、内存、网络和磁盘问题的详细了解与学习,我们能够更加有效地对系统进行维护和优化。上述知识点涵盖了问题排查的基本思路和常用工具,有助于提高系统管理员的工作效率,并确保系统的稳定运行...

Global site tag (gtag.js) - Google Analytics