一. 内存使用说明
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被当前进程实际占用完,即没有了buffers和cache时,才会使用到swap。
Mem 行(第一行)数据说明:
Total:1035108KB。表示物理内存总大小。
Used:1008984KB。表示总计分配给缓存(包含buffers 与cache )使用的数量,但其中可能部分缓存并未实际使用。
Free:26124KB。表示未被分配的内存。
Shared:0kb。共享内存,一般系统不会用到。
Buffers:124212KB。系统分配但未被使用的buffers 数量。
Cached:413000KB。系统分配但未被使用的cache 数量。
-/+ buffers/cache 行(第二行)数据说明:
Used:471772kb,实际使用的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. 物理内存总大小
total(Mem) = 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内部,常见的容量有256KB或512KB L2 Cache。
2.2 Buffer
Buffer:缓冲区,一个用于存储速度不同步的设备或优先级不同的设备之间传输数据的区域。通过缓冲区,可以使进程之间的相互等待变少,从而使从速度慢的设备读入数据时,速度快的设备的操作进程不发生间断。
在Free命令中显示的buffer和cache,它们都是占用内存:
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系统在内存管理方面采取了许多高效的策略来提高系统...
Linux 操作系统中内存 buffer 和 cache 的区别 在 Linux 操作系统中,内存 buffer 和 cache 是两个重要的概念,它们都是占用内存的,但是它们的作用和特点却不同。本文将详细介绍内存 buffer 和 cache 的概念、区别...
### Linux内存中Buffer与Cache的区别 #### 概述 Linux操作系统在管理内存资源时采用了高效且灵活的方法。当我们使用`free`命令查看系统的内存使用情况时,可能会注意到一个现象:即使系统似乎没有运行太多的应用...
### Linux操作系统中内存buffer和cache的区别 #### 一、引言 在Linux操作系统中,内存管理是一项关键的技术,它直接影响到系统的性能和稳定性。本文将详细介绍Linux系统中内存buffer和cache的区别及其工作原理,...
在Linux系统中,Buffer和Cache的概念也被用于描述文件系统的状态。Buffer是指待写入磁盘的数据,它们通常与文件系统的写操作相关,比如在文件被修改后,系统会先将其内容暂存于Buffer中,然后在合适的时机(例如通过...
Linux内存管理是操作系统的核心组成部分,尤其在服务器环境中,理解Swap和Buffer Cache机制至关重要。Swap空间是Linux实现虚拟内存的关键,它允许系统将物理内存中暂时不用的数据存储到硬盘上,以此扩展内存容量。当...
Buffer(缓冲区)主要存储的是磁盘I/O操作的数据,目的是减少磁盘和内存之间的数据交换次数,提高读写速度。Cache(缓存)则是用于存储经常访问的数据,加快程序访问速度,比如文件系统和数据库的缓存。这两种内存...
缓存(Cache)主要包含两种类型:页高速缓存(Page Cache)和块设备缓存(Buffer Cache)。页高速缓存用于存储文件系统的数据,当程序读取文件时,内核会尝试从缓存中直接获取,从而提高数据访问速度。块设备缓存则...
5. **内存管理子系统**:Linux内核内存管理子系统负责分配和回收内存,以及维护Page和Buffer Cache。它包括伙伴系统(用于分配连续内存块)和slab分配器(用于高效管理小对象的内存分配)。slab分配器根据对象大小...
在Linux中,文件Cache起到了内存管理与文件系统间的桥梁作用,确保数据高效地在内存和存储设备之间流动。 文件Cache主要由Page Cache和Buffer Cache两部分组成。Page Cache是更高层的概念,用于缓存文件的连续数据...
#### 一、理解Linux内存管理机制 在Linux系统中,内存管理机制非常高效且复杂。为了提升文件系统访问速度,Linux内核会利用空闲内存来缓存文件数据(称为Page Cache)和其他类型的缓存(如Buffer Cache)。这样做的...
hardware和计算机体系结构是Linux内存管理的基础。计算机体系结构中,存储层次结构包括寄存器、Cache、主存储器和辅助存储器。MMU(Memory Management Unit)是Linux内存管理的核心组件,负责将虚拟地址转换为物理...
了解Buffer和Cache的区别有助于优化系统的内存使用和性能。在某些情况下,如系统内存紧张时,可以通过`echo 3 > /proc/sys/vm/drop_caches`命令清空Buffer和Cache,释放内存供其他进程使用。然而,这应谨慎操作,...
Linux内存管理机制的一个显著特点是充分利用空闲内存作为缓存(包括Buffer Cache和Page Cache)。这样做能够极大地提高磁盘I/O效率,从而提升应用程序的整体性能。但是,这种设计也可能会让初学者感到困惑,尤其是在...
Linux还采用了Buffer Cache和Page Cache这两种主要的缓存机制,以优化磁盘和内存的交互。Buffer Cache针对磁盘块的读写,而Page Cache针对文件inode的读写。这两种缓存极大地提高了系统性能,减少了I/O操作的延迟。 ...
Linux操作系统中内存buffer和cache的区别.docx Linux服务器环境搭建(设置).pdf linux简明维护手册.pdf Linux系统命令及其使用详解.doc Linux系统性能监控工具.doc Linux系统整体性能监控工具详解.doc nmon on Linux ...
此外,理解Linux内核的缓冲区缓存机制(比如Page Cache和DMA Buffer)也是至关重要的,这些机制可以帮助系统更高效地处理I/O操作,减少CPU与外设之间的交互次数,从而提高整体性能。 总之,Linux缓冲区是优化系统...
Linux内存管理是操作系统的核心组成部分,它负责有效地分配和管理系统的物理和虚拟内存资源,确保系统高效、稳定地运行。在Linux环境下,内存管理涉及到多个层面,包括页表、交换机制、缓存和缓冲区、内存分配策略等...
6. **高速缓存**:Linux使用缓冲区缓存(Buffer Cache)和页面缓存(Page Cache)来加速磁盘I/O操作。缓冲区缓存用于文件系统的元数据,而页面缓存则用于文件内容,它们都利用空闲内存,显著提高系统性能。 7. **...