`
yinwufeng
  • 浏览: 287064 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

linux 内存 free

 
阅读更多

如下显示free是显示的当前内存的使用,-m的意思是M字节来显示内容.我们来一起看看.

$ free -m
total used free shared buffers cached
Mem: 1002 769 232 0 62 421
-/+ buffers/cache: 286 715
Swap: 1153 0 1153

第一部分Mem行:
total 内存总数: 1002M
used 已经使用的内存数: 769M
free 空闲的内存数: 232M
shared 当前已经废弃不用,总是0
buffers Buffer 缓存内存数: 62M
cached Page 缓存内存数:421M

关系:total(1002M) = used(769M) + free(232M)

第二部分(-/+ buffers/cache):
(-buffers/cache) used内存数:286M (指的第一部分Mem行中的used - buffers - cached)
(+buffers/cache) free内存数: 715M (指的第一部分Mem行中的free + buffers + cached)

可见-buffers/cache反映的是被程序实实在在吃掉的内存,而+buffers/cache反映的是可以挪用的内存总数。

第三部分是指交换分区, 我想不讲大家都明白.

我想大家看了上面,还是很晕.第一部分(Mem)与第二部分(-/+ buffers/cache)的结果中有关used和free为什么这么奇怪.
其实我们可以从二个方面来解释.
对操作系统来讲是Mem的参数.buffers/cached 都是属于被使用,所以它认为free只有232.
对应用程序来讲是(-/+ buffers/cach).buffers/cached 是等同可用的,因为buffer/cached是为了提高程序执行的性能,当程序使用内存时,buffer/cached会很快地被使用。

所以,以应用来看看,以(-/+ buffers/cache)的free和used为主.所以我们看这个就好了.另外告诉大家一些常识.Linux为了提高磁盘和内存存取效率, Linux做了很多精心的设计,
除了对dentry进行缓存(用于VFS,加速文件路 径名到inode的转换), 还采取了两种主要Cache方式:Buffer Cache和Page Cache。前者针对磁盘块的读写,后者针对文件inode的读写。这些Cache能有效缩短了 I/O系统调用(比如read,write,getdents)的时间。

记住内存是拿来用的,不是拿来看的.不象windows, 无论你的真实物理内存有多少,他都要拿硬盘交换文件来读.这也就是windows为什么常常提示虚拟空间不足的原因.你们想想,
多无聊,在内存还有大部分 的时候,拿出一部分硬盘空间来充当内存.硬盘怎么会快过内存.所以我们看linux,只要不用swap的交换空间,就不用担心自己的内存太少.如果常常
swap用很多,可能你就要考虑加物理内存了.这也是linux看内存是否够用的标准哦.

 

分享到:
评论

相关推荐

    嵌入式Linux内存与性能详解-史子旺

    《嵌入式Linux内存与性能详解》一书由史子旺撰写,专注于深入解析Linux内存管理机制以及如何在嵌入式环境中优化系统性能。Linux内存管理是操作系统的核心部分,理解和掌握这一领域对于开发者来说至关重要,尤其是在...

    linux内存管理实验报告

    Linux内存管理是操作系统的核心组成部分,它负责有效地分配和回收内存资源,确保系统高效稳定地运行。在本实验中,我们主要探讨了Linux虚拟内存管理的原理、动态内存操作函数的使用,以及如何检测主存使用情况。 ...

    Linux 内存泄露查找

    ### Linux 内存泄露查找详解 #### 一、引言 在进行Linux C语言编程时,内存管理一直是程序员关注的重点之一。特别是在动态内存分配场景下,如果不妥善处理,很容易出现内存泄露的问题。内存泄露不仅会消耗系统资源...

    嵌入式Linux内存与性能详解

    本资源《嵌入式Linux内存与性能详解》详细阐述了这些关键领域,为理解嵌入式系统的内在机制提供了深入见解。 1. **嵌入式系统概述**:嵌入式系统通常具有特定功能,它们在硬件限制下运行,如处理能力、内存大小和...

    linux内存管理源代码导读

    动态存储器管理还涉及到页框的分配和释放,Linux 中提供了多种接口来分配和释放页框,例如 alloc_pages、alloc_page、__get_free_pages、__get_free_page 等。 Linux 内存管理还涉及到缓存机制,缓存机制可以提高...

    嵌入式Linux内存管理之free命令

    缓冲(buffers)和缓存(cached)是Linux内存管理中的两个重要概念,它们都用于提高文件系统的性能: - Buffers主要用作块设备的缓冲,用来存储文件系统的元数据和正在处理的页面信息。 - Cached用于文件内容的缓冲...

    linux下内存池实现

    在Linux系统中,内存池是一种优化内存管理的技术,尤其对于频繁分配和释放小块内存的情况,内存池可以显著提升性能并减少系统开销。本文将深入探讨Linux下的内存池实现,包括其原理、优势以及如何在C或C++中进行实践...

    Linux内存管理--Linux物理内存三级架构.pdf

    Linux内存管理是操作系统管理计算机内存资源的重要组成部分,它涉及到内存的分配、回收以及效率优化等多方面的技术。Linux内存管理采用的是一种三级架构模型,包括内存节点(node)、内存区域(zone)和物理页框(page)。...

    嵌入式Linux内存使用与性能优化

    本文将深入探讨嵌入式Linux内存使用与性能优化的相关知识点,帮助开发者更好地理解和改进其程序性能。 首先,理解Linux内存模型是优化的基础。Linux内核采用虚拟内存管理,包括物理内存(RAM)和交换空间(Swap)。...

    易语言linux内存操作源码

    易语言Linux内存操作源码是针对Linux操作系统设计的编程代码,主要目的是为了在Linux环境下进行内存管理与操作。易语言是一种中国本土开发的、面向普通用户的编程语言,它以其简单的语法和直观的编程界面,降低了...

    一种Linux内存管理机制.pdf

    Linux内存管理机制包括多种层次和策略,旨在高效地分配和回收内存,避免内存耗尽和系统崩溃。本文将深入探讨Linux内存管理模型、伙伴系统、Slab分配流程以及内存回收策略。 首先,Linux内存管理模型将物理内存划分...

    解析linux中的free

    - **标题含义**:“解析Linux中的free”这一标题主要指通过`free`命令来分析和理解Linux系统中内存的使用状态。 - **应用场景**:通常用于系统监控、故障排查或性能调优等场景中。 #### 描述解析:解释Linux中`free...

    linux源代码分析之内存管理

    ### Linux源代码分析之内存管理 #### 摘要与关键词 本文档是对Linux内核内存管理系统的一个深入分析,特别是针对其源代码进行了详细的解读。Linux的内存管理是内核中最复杂的部分之一,它涉及到了内存初始化、地址...

    Linux内存管理编程

    Linux内存管理编程是操作系统核心部分的关键技术之一,它涉及到如何高效地分配、使用和回收内存资源。本实验旨在帮助你深入理解Linux环境下的内存管理机制,主要包括内存映射(mapping)和解除映射(unmapping),...

    检测Linux内存使用情况的free命令的10个例子

     Linux “free”命令可以给出类Linux/Unix操作系统中物理内存和交换内存的总使用量、可用量及内核使用的缓冲区情况。  这篇文章提供一些各种参数选项的“free”命令,这些命令对于你更好地利用你的内存会有...

    linux内存和CPU占用情况

    在Linux操作系统中,管理和监控内存以及CPU...总之,Linux内存和CPU的监控与管理是系统运维的核心部分,熟练掌握相关工具和技巧对于保障系统健康运行至关重要。`mytop`的使用将帮助你更好地理解和掌控系统的实时状态。

    易语言源码易语言linux内存操作源码.rar

    在“易语言源码易语言linux内存操作源码.rar”这个压缩包中,我们关注的重点是易语言在Linux环境下的内存操作。下面将详细讲解相关知识点。 内存操作在编程中扮演着至关重要的角色,它涉及到程序运行时数据的存储和...

    Linux内存管理实验.pdf

    Linux内存管理实验是关于Linux操作系统内存管理机制的学习和实践。本实验中会涉及到诸多内存管理的关键概念和工具,如free、vmstat、readelf、objdump等。接下来将详细解释上述内容中涉及的关键知识点。 首先,free...

    深入理解linux虚拟内存管理(中+英)

    Linux提供malloc和free函数供程序员分配和释放内存,实际上这些操作是由内存管理子系统处理的。内存分配可能涉及到匿名页(无文件映射的内存)和文件映射页(与磁盘文件关联的内存)。对于匿名页,Linux可能会使用...

Global site tag (gtag.js) - Google Analytics