转: http://www.php-oa.com/2008/04/04/linux-free.html
如下显示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内存加密密钥提取器,通常被称为CryKeX,是一个专门针对Linux操作系统的工具,用于从内存中提取加密密钥。这个工具对于系统安全分析、漏洞研究以及密码学研究等领域具有重要意义。在Linux系统中,内存是敏感...
本资料包提供了一种常用且强大的内存泄漏检测工具——Valgrind,以及其安装教程、使用示例和详细说明文档。 Valgrind是一款开源的动态分析工具,主要用于检测C和C++程序中的内存错误,包括内存泄漏、未初始化的内存...
在使用共享内存的程序异常退出时,由于没有释放掉共享内存,在调试时会出现错误。您可以使用shell命令来查看与释放已经分配的共享内存,下面将详细说明如何进行查看和释放分配的共享内存的方法。
Linux使用说明书主要涵盖的是Ubuntu 11.04版本的操作系统安装、特性和资源获取等方面。Ubuntu是一个由社区驱动的Linux发行版,基于Debian GNU/Linux,提供桌面、笔记本和服务器版,支持多种应用程序,包括浏览器、...
接下来将详细说明Linux内存管理中的一些关键知识点。 首先,我们需要了解Linux内核如何表示物理内存页。在Linux内核中,物理内存页由一个名为`struct page`的结构体来表示。这个结构体在内核源代码中广泛使用,它...
在Linux内存管理中,伙伴算法能够处理不同大小的内存分配请求,包括单个页面(4KB)以及多个页面的组合。当系统接收到内存分配请求时,它会首先查找与请求大小相匹配的空闲页面块。如果当前级别(order)的链表中不...
Linux 内存映射实例分析 Linux 内存管理是操作系统中最重要的部分之一,而内存映射是内存管理的核心内容。本文主要分析 Linux 内存映射实例,讨论虚拟地址空间和物理地址的映射关系,包括内核虚拟地址空间的映射...
页表条目是页表的最低层,它直接处理页,包含某页的物理地址,还包含了说明该条目是否有效及相关页是否在物理内存中的位。 在 x86 架构上,Linux 使用三级分页机制来支持大内存区域。在不需要为大内存区域时,即可...
描述“跨平台(windows/linux)实现进程间内存共享功能”说明了这个项目或库的目标,即在Windows和Linux这两种不同的操作系统环境下实现内存共享功能。这通常需要对两种系统的API有深入理解,因为它们处理内存共享的...
"LINUX源码注释说明"这个主题,无疑是对Linux内核源代码的一种深入解读。Linux内核是整个系统的心脏,它负责管理硬件资源,调度进程,实现网络通信,以及执行各种底层操作。了解其源码不仅可以提升对操作系统原理的...
### 共享内存数据库知识点详解 #### 一、项目背景及意义 - **背景概述**:随着2008年国家通信行业的战略调整以及2009年3G牌照的发放,中国电信业迎来了3G时代。3G技术的普及不仅提高了网络传输速度,还为用户提供...
页面是Linux内存管理的基本单位,包含了关于页的元信息,如其状态、物理地址等。 - `struct kmem_cache_node`: 这个结构体与`struct kmem_cache`相关,用于跨CPU节点的缓存管理,特别是在NUMA(非统一内存访问)系统...
本文将深入探讨Linux环境下如何利用共享内存来实现进程间的高效通信,并通过具体的步骤和代码示例来说明。 #### 二、共享内存简介 共享内存是一种进程间通信机制,允许两个或多个进程共享同一段内存区域。这种方式...
释放操作完成后,再次执行free命令,我们会看到可用内存(free)增加了,而被缓存的内存(cached)显著减少,说明内存已经被有效释放。 值得注意的是,释放缓存可能会有性能上的负面影响,因为它会减少操作系统用来...
"Arm+Linux开发平台软件需求规格说明书" Arm+Linux开发平台软件需求规格书是一份详细的软件需求规格说明书,旨在为开发团队提供明确的指引和要求,以确保软件开发的质量和一致性。这份规格书涵盖了软件开发的各个...
### Linux常见内存分配函数 #### 1. 原理说明 Linux内核采用了一种通用的内存分页模型,这种模型能够同时适应32位和64位系统的需求。对于32位系统而言,使用两级页表即可满足内存管理需求;而对于64位系统(如x86_...
通过这些OID,管理员可以远程监控Linux服务器的性能和健康状况,例如CPU利用率、内存使用、磁盘空间、网络接口状态等。这对于自动化监控、故障排查和系统优化非常有用。通过SNMP工具,可以定期收集这些信息并进行...