`
javafan_303
  • 浏览: 957233 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Linux内存解释(转)

阅读更多

  大家注意的是,这里的内存指的是linux下的内存管理方式。我告诉有朋友我一直用Linux,他问我了一下我为什么linux使用的内存这么高,他讲他1G的内存free才232M,讲win xp才用200M的内存

      其实啊,linux的内存是很说究的,如下显示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看内存是否够用的标准哦。

 

转自:http://blog.chinaunix.net/u3/98941/showart.php?id=2093545

分享到:
评论

相关推荐

    深入理解Linux内存管理

    ### 深入理解Linux内存管理 #### 一、引言与概述 本文档旨在深入探讨Linux 2.4版本中的内存管理系统。作者Mel Gorman在2004年撰写了这一篇详尽的文章,其内容涵盖了从启动时的内存分配到运行时内存管理的所有方面...

    用来查看linux内存使用情况的shell脚本.docx

    "Linux内存使用情况查看shell脚本" 在 Linux 系统中,对于内存使用情况的查看是一项重要的系统管理任务。通常,Linux 提供了多种查看内存使用情况的命令,例如 `free`、`top`、`htop` 等,但这些命令只能查看整体的...

    Linux内存整理doc.rar

    本文档将深入探讨Linux内存的各个方面,帮助读者理解Linux是如何管理和优化内存的。以下是对标题和描述中涉及知识点的详细解释: 1. **Linux内存模型**:Linux采用虚拟内存体系,将物理内存与磁盘空间结合,形成一...

    linux 共享内存浅析

    本文将详细介绍如何在Linux环境下使用共享内存,并解释相关的API函数及其使用方法。 #### 创建共享内存 为了使用共享内存,通常需要经历以下几个步骤: 1. **开辟共享内存**:通过`shmget()`函数来创建或获取共享...

    Linux虚拟内存管理

    8. **内存分区**:Linux内存分为用户空间和内核空间,用户空间是应用程序使用的,而内核空间由操作系统内核使用。通常,用户空间占用3GB,内核空间占用1GB,但这可以通过修改配置来调整。 理解Linux虚拟内存管理...

    内存管理 --- linux内存管理的介绍

    ### 内存管理 —— Linux内存管理的深入解析 #### 第八章:内存管理 在探索Linux内存管理之前,我们已经了解到Linux是如何高效利用80x86的分段和分页机制将逻辑地址转换为物理地址。在这一章中,我们将更深入地...

    深入理解linux虚拟内存

    《深入理解Linux虚拟内存》是一本专为对Linux操作系统感兴趣的读者设计的专业书籍,它深入探讨了Linux内核如何管理和...通过阅读此书,读者将能够全面掌握Linux内存管理的核心概念,提高系统性能优化和问题排查的能力。

    linux-内存及flash使用情况查询.pdf

    Linux系统作为一款开源的操作系统,在使用过程中,对于系统资源的监控,尤其是内存和Flash存储器的使用情况的查询,是系统管理员日常工作中的重要部分。对于内存和Flash的使用情况查询,有多种方法可以实现,但它们...

    Linux文件系统概念解释

    它在内存中创建一个匿名管道,进程之间通过管道传递数据,提高效率。例如,`ls | sort`命令,`ls`的输出被`sort`作为输入进行排序。 - **套接字文件**:套接字是实现网络通信的接口,用于不同进程间或网络节点间的...

    Linux下获取本机MAC ,IP,NetMask,以及Linux下编码转换

    ### Linux下获取本机MAC地址、IP地址及子网掩码 #### 1. 获取MAC地址 在Linux系统中,可以通过编程方式获取本机的MAC地址。以下代码展示了如何使用C语言来实现这一功能。 ```c int get_mac() { int nSocket; ...

    使用PYTHON动态控制LINUX系统的内存占用百分比.pdf

    `mem_rate.py`需要指定Python解释器的路径,并通过循环申请内存空间,直到达到用户设定的内存占用百分比。 总结起来,这个过程涉及到的主要知识点包括: 1. 使用Python的`ctypes`库进行内存操作。 2. Python的垃圾...

    深入理解Linux内核中文第三版——第8章 内存管理

    《深入理解Linux内核中文第三版》是一部针对Linux 2.6内核的权威指南,其第8章专门探讨了“内存管理”这一核心主题。内存管理是操作系统中至关重要的一环,它涉及到如何分配、使用和回收系统内存,以确保程序高效、...

    Linux0.01内核源代码及注释

    这些源代码展示了早期Linux内核的基本构造,通过理解这些代码,可以深入学习操作系统原理,了解早期Linux是如何处理硬件资源、管理内存、实现文件系统以及执行进程的。对于想要深入研究Linux内核的人来说,这是一个...

    申延超_嵌入式Linux应用开发完全手册笔记_内存管理单元MMU

    《申延超_嵌入式Linux应用...如果“申延超_嵌入式Linux应用开发完全手册笔记_内存管理单元MMU.jpg”是一个包含笔记或图表的图片文件,它可能包含对书中重要概念的可视化解释,对于理解MMU工作原理和应用也会大有裨益。

    linux教程第课内存与设备管理学习教案.ppt

    内存管理和设备管理是操作系统核心功能之一,特别是在Linux这样的开源操作系统中,这些概念和技术至关重要。本教程将探讨Linux系统中的内存管理以及设备管理的基础知识。 内存管理主要包括以下几个方面: 1. **...

    (转)Linux内核源码及其分析

    分页机制是现代操作系统管理内存的关键,本章详细解释了分页机构、页面高速缓存,以及Linux内核如何处理页目录和页表。最后,还介绍了Linux中的汇编语言,对比了AT&T和Intel汇编,讲解了Gcc的嵌入式汇编。 第三章...

    手动释放Linux服务器内存(具体操作步骤)

    在Linux服务器管理中,了解...总的来说,理解Linux内存管理机制以及如何手动释放内存对于服务器维护至关重要。但应谨慎操作,因为过度清理缓存可能会影响性能。通常情况下,让Linux操作系统自动管理内存是最佳实践。

    从Windows转向Linux教程(pdf).

    1. **操作系统概念**:首先,教程可能会解释操作系统的基本功能,如内存管理、进程控制、设备驱动和用户界面等,以便读者理解Linux作为操作系统的核心工作原理。 2. **Linux发行版选择**:Linux有多种发行版,如...

    Linux内核0.11完全注释 PDF+WORD版本

    这份"Linux内核0.11完全注释 PDF+WORD版本"的资料,为学习和理解Linux内核的初学者提供了一个宝贵的资源,它包含了对源代码的详细解释和注解,帮助读者深入理解Linux内核的工作原理。 Linux内核是操作系统的核心...

Global site tag (gtag.js) - Google Analytics