`
hunxiejun
  • 浏览: 1145026 次
文章分类
社区版块
存档分类
最新评论

Linux 内存 buffer 和 cache 的区别

 
阅读更多

. 内存使用说明

Free 命令相对于top 提供了更简洁的查看系统内存使用情况:

[root@rac1 ~]# free

total used free shared buffers cached

Mem: 1035108 1008984 26124 0 124212 413000

-/+ buffers/cache: 471772 563336

Swap: 2096472 842320 1254152

这里显示的单位是KB

linux的内存分配机制中,优先使用物理内存,当物理内存还有空闲时(还够用),不会释放其占用内存,就算占用内存的程序已经被关闭了,该程序所占用的内存用来做缓存使用,对于开启过的程序、或是读取刚存取过得数据会比较快。有关Linux内存机制参考:

Linux 内存机制

http://blog.csdn.net/tianlesoftware/archive/2010/04/08/5463790.aspx

Mem:表示物理内存统计。
-/+ buffers/cached
:表示物理内存的缓存统计
Swap
:表示硬盘上交换分区的使用情况。只有mem被当前进程实际占用完,即没有了bufferscache时,才会使用到swap

Mem 行(第一行)数据说明:

Total1035108KB。表示物理内存总大小。

Used1008984KB。表示总计分配给缓存(包含buffers cache )使用的数量,但其中可能部分缓存并未实际使用。

Free26124KB。表示未被分配的内存。

Shared0kb。共享内存,一般系统不会用到。

Buffers124212KB。系统分配但未被使用的buffers 数量。

Cached413000KB。系统分配但未被使用的cache 数量。

-/+ buffers/cache 行(第二行)数据说明:

Used471772kb,实际使用的buffers cache 总量,也是实际使用的内存总量。

Free: 563336kb, 未被使用的buffers cache 和未被分配的内存之和,这就是系统当前实际可用内存。

根据以上分析,可以得出一下结论:

1. 实际可用内存大小:

Free-/+ buffers/cache行)= Free(Mem)+buffers(Mem)+Cached(Mem);

563336 = 26124 + 124212+ 413000

2. 已经分配的内存大小:

Used(Mem) = Used(-/+ buffers/cache)+ buffers(Mem) + Cached(Mem)

1008984kb = 471772 + 124212 +413000

3. 物理内存总大小

totalMem = used(-/+ buffers/cache) + free(-/+ buffers/cache)

1035108 = 471772 + 563336

. 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.

2.1 Cache

Cache:高速缓存,是位于CPU与主内存间的一种容量较小但速度很高的存储器。

由于CPU的速度远高于主内存,CPU直接从内存中存取数据要等待一定时间周期,Cache中保存着CPU刚用过或循环使用的一部分数据,当CPU再次使用该部分数据时可从Cache中直接调用,这样就减少了CPU的等待时间,提高了系统的效率。

Cache又分为一级Cache(L1 Cache)和二级Cache(L2 Cache)L1 Cache集成在CPU内部,L2 Cache早期一般是焊在主板上,现在也都集成在CPU内部,常见的容量有256KB512KB L2 Cache

2.2 Buffer

Buffer:缓冲区,一个用于存储速度不同步的设备或优先级不同的设备之间传输数据的区域。通过缓冲区,可以使进程之间的相互等待变少,从而使从速度慢的设备读入数据时,速度快的设备的操作进程不发生间断。

Free命令中显示的buffercache,它们都是占用内存:

buffer : 作为buffer cache的内存,是块设备的读写缓冲区,更靠近存储设备,或者直接就是disk的缓冲区。

cache: 作为page cache的内存, 文件系统的cache,是memory的缓冲区

如果 cache 的值很大,说明cache住的文件数很多。如果频繁访问到的文件都能被cache住,那么磁盘的读IO 必会非常小。

整理自:

http://www.linuxdiyf.com/blog/?90293/action_viewspace_itemid_3004.html

-------------------------------------------------------------------------------------------------------

Blog http://blog.csdn.net/tianlesoftware

Email: dvd.dba@gmail.com

DBA1 群:62697716(); DBA2 群:62697977() DBA3 群:62697850()

DBA 超级群:63306533(); DBA4 群: 83829929 DBA5群: 142216823

DBA6 群:158654907 聊天 群:40132017 聊天2群:69087192

--加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请

分享到:
评论

相关推荐

    Linux内存buffer和cache的区别

    在linux的内存分配机制中,优先使用物理内存,当物理内存还有空闲时(还够用),不会释放其占用内存,就算占用内存的程序已经被关闭了,该程序所占用的内存用来做缓存使用,对于开启过的程序、或是读取刚存取过得...

    linux内存中buffer与cache的区别

    我们通过free命令查看机器空闲内存时,会发现free的值很...这主要是因为,在linux中有这么一种思想,内存不用白不用,因此它尽可能的cache和buffer一些数据,以方便下次使用。但实际上这些内存也是可以立刻拿来使用的。

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

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

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

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

    Linux内存中Swap和Buffer Cache机制

    Linux的产生与发展,更多的应用与服务器,那么对于Linux的各个管理机制要非常清 楚,一个完整的Linux系统主要有存储管理,内存管理,文件系统和进程管理等几...本文将为大家介绍Linux内存中Swap和Buffer Cache机制。

    Oracle Buffer和Cache的区别

    Oracle Buffer和Cache的区别 buffer与cache操作的对象就不一样。 buffer(缓冲)是为了提高内存和硬盘(或其他I/0设备)之间的数据交换的速度而设计的。 cache(缓存)是为了提高cpu和内存之间的数据交换速度而设计...

    解决 linux 下 buffcache 占用过高的问题.docx

    解决 linux下 buff/cache 占用过高的问题解决 linux下 buff/cache 占用过高的问题

    实用全面的linux教程大全

    Linux操作系统中内存buffer和cache的区别.docx Linux服务器环境搭建(设置).pdf linux简明维护手册.pdf Linux系统命令及其使用详解.doc Linux系统性能监控工具.doc Linux系统整体性能监控工具详解.doc nmon on Linux ...

    Linux操作系统的内存使用机制研究

    Linux支持虚拟内存(Virtual Mmemory),虚拟内存是指使用磁盘当作RAM的扩展,这样可用的内存的大小就相应地增大了。...这叫作磁盘缓冲(Disk Buffering),被用作此目的的内存称为高速缓冲(Buffer Cache)。

    边干边学——LINUX内核指导

    第1章 了解Linux内核 1. 1 Linux内核 1. 2 查看Linux内核状况 1. 3 编程序检查系统状况 1. 4 Linux编程环境 ...11. 6 buffer cache 11. 7 实验:添加一个文件系统 11. 8 附录:优秀的日志文件系统--ext3

    容器缓存查看利器hcache的使用

    查询缓存使用命令hcache,已经是二进制的了,上传可以使用

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

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

    ARM_Linux启动分析.pdf

    创建和设置内部及通用cache("slab_cache",kmem_cache_sizes_init()) 创建uid taskcount SLAB cache("uid_cache",uidcache_init()) 创建文件cache("files_cache",filescache_init()) 创建目录cache(...

    understanding linux network internals

    深入理解Linux网络内幕(英文) If you've ever wondered how Linux carries out the complicated tasks assigned to it by the IP protocols -- or if you just want to learn about modern networking through ...

    SkyEye教程

    对于那些想进行嵌入式系统软件开发和学习,或者想研究嵌入式Linux等操作系统和一些底层系统软件(如TCP/IP等)的研究和开发人员来说,可能存在如下几方面的问题:(1)经常苦于经费不足,缺少足够的硬件开发板和完善...

    Linux-0.11 [内核源代码带中文注释]

    buffer cache as in minix ! ! The loader has been made as simple as possible, and continuos ! read errors will result in a unbreakable loop. Reboot by hand. It ! loads pretty fast by getting whole ...

    入门学习Linux常用必会60个命令实例详解doc/txt

    这是因为Linux和许多版本的Unix一样,提供了虚拟控制台的访问方式,允许用户在同一时间从控制台(系统的控制台是与系统直接相连的监视器和键盘)进行多次登录。每个虚拟控制台可以看作是一个独立的工作站,工作台...

    嵌入式系统/ARM技术中的基于FA526处理器SoC平台的Linux操作系统实现

    引言 智原科技的FIE8100 SoC平台是一种低功耗、便携式视频相关...它包括一个同步CPU内核(core)、独立的指令/数据缓存(cache)、独立的指令/数据暂存器(scratchpads)、一个写缓存(write buffer)、一个内存管理单元

    Oracle DBA 参考手册

    Shared Pool and Library Cache Performance Tuning(共享池和Library Cache) 55 10.3.6.2. Buffer Cache Performance Tuning(数据库缓存调整) 55 10.3.6.3. Latch Contention(加锁或插销竞争) 55 10.3.6.4. ...

    MySQL管理之道 性能调优、高可用与监控.part2.rar

    5.6.3 query cache在不同环境下的使用 201 5.6.4 tuning-primer.sh性能调试工具的使用 205 5.6.5 72 gb内存的my.cnf配置文件 208 5.6.6 谨慎使用分区表功能 211 5.7 mysql5.6同步复制新特性详解 213 第6章 ...

Global site tag (gtag.js) - Google Analytics