- 浏览: 95138 次
- 性别:
- 来自: 深圳
最新评论
-
liuguxing:
这个没研究过,用内嵌tomcat只是为了调试时不用发布到tom ...
Tomcat7内嵌服务器 -
helloqiner:
如何对嵌入式tomcat进行调优?如设置线程池数量,设置nio ...
Tomcat7内嵌服务器
linux中的free命令大家都很常用,可大家都清楚free输出的各行的意思及它们之间的关系吗?
[root@localhost ~]# free
total used free shared buffers cached
Mem: 4038116 4010292 27824 0 205228 1343276
-/+ buffers/cache: 2461788 1576328
Swap: 8289500 254076 8035424
第一行:
total 物理内存总数: 4038116
used 已经使用的内存数: 4010292
free 空闲的内存数: 27824
shared 当前已经废弃不用,总是0
buffers 即Buffer Cache内存数: 205228
cached 即Page Cache内存数: 1343276
关系:total = used + free
第二行:
-/+ buffers/cache的意思相当于:
-buffers/cache 的内存数:2461788 (等于第1行的 used – buffers – cached),实际上是应用程序所使用的内存。
+buffers/cache 的内存数: 1576328 (等于第1行的 free + buffers + cached),是对应用程序来说还剩余的内存。
可见-buffers/cache反映的是被程序实实在在吃掉的内存,而+buffers/cache反映的是可以挪用的内存总数。
对操作系统来讲buffers/cached 都是属于被使用,所以它认为free只有27824.
对应用程序来讲是(-/+ buffers/cach).buffers/cached 是等同可用的,因为buffer/cached是为了提高程序执行的性能,当程序使用内存时,buffer/cached会很快地被使用。
第三行是交换分区swap, 列出已使用、空闲的swap.
那buffers和cached都是缓存,两者有什么区别呢?
为了提高磁盘存取效率, Linux做了一些精心的设计, 除了对dentry进行缓存(用于VFS,加速文件路径名到inode的转换), 还采取了两种主要Cache方式:Buffer Cache和Page Cache。前者针对磁盘块的读写,后者针对文件inode的读写。这些Cache有效缩短了 I/O系统调用(比如read,write,getdents)的时间。
磁盘的操作有逻辑级(文件系统)和物理级(磁盘块),这两种Cache就是分别缓存逻辑和物理级数据的。
Page cache实际上是针对文件系统的,是文件的缓存,在文件层面上的数据会缓存到page cache。文件的逻辑层需要映射到实际的物理磁盘,这种映射关系由文件系统来完成。当page cache的数据需要刷新时,page cache中的数据交给buffer cache,因为Buffer Cache就是缓存磁盘块的。但是这种处理在2.6版本的内核之后就变的很简单了,没有真正意义上的cache操作。
Buffer cache是针对磁盘块的缓存,也就是在没有文件系统的情况下,直接对磁盘进行操作的数据会缓存到buffer cache中,例如,文件系统的元数据都会缓存到buffer cache中。
简单说来,page cache用来缓存文件数据,buffer cache用来缓存磁盘数据。在有文件系统的情况下,对文件操作,那么数据会缓存到page cache,如果直接采用dd等工具对磁盘进行读写,那么数据会缓存到buffer cache。
所以我们看linux,只要不用swap的交换空间,就不用担心自己的内存太少.如果常常swap用很多,可能你就要考虑加物理内存了.这也是linux看内存是否够用的标准.
如果是应用服务器的话,一般只看第二行,+buffers/cache,即对应用程序来说free的内存太少了,也是该考虑优化程序或加内存了。
http://blog.chinaunix.net/space.php?uid=22741583&do=blog&id=3088342
[root@localhost ~]# free
total used free shared buffers cached
Mem: 4038116 4010292 27824 0 205228 1343276
-/+ buffers/cache: 2461788 1576328
Swap: 8289500 254076 8035424
第一行:
total 物理内存总数: 4038116
used 已经使用的内存数: 4010292
free 空闲的内存数: 27824
shared 当前已经废弃不用,总是0
buffers 即Buffer Cache内存数: 205228
cached 即Page Cache内存数: 1343276
关系:total = used + free
第二行:
-/+ buffers/cache的意思相当于:
-buffers/cache 的内存数:2461788 (等于第1行的 used – buffers – cached),实际上是应用程序所使用的内存。
+buffers/cache 的内存数: 1576328 (等于第1行的 free + buffers + cached),是对应用程序来说还剩余的内存。
可见-buffers/cache反映的是被程序实实在在吃掉的内存,而+buffers/cache反映的是可以挪用的内存总数。
对操作系统来讲buffers/cached 都是属于被使用,所以它认为free只有27824.
对应用程序来讲是(-/+ buffers/cach).buffers/cached 是等同可用的,因为buffer/cached是为了提高程序执行的性能,当程序使用内存时,buffer/cached会很快地被使用。
第三行是交换分区swap, 列出已使用、空闲的swap.
那buffers和cached都是缓存,两者有什么区别呢?
为了提高磁盘存取效率, Linux做了一些精心的设计, 除了对dentry进行缓存(用于VFS,加速文件路径名到inode的转换), 还采取了两种主要Cache方式:Buffer Cache和Page Cache。前者针对磁盘块的读写,后者针对文件inode的读写。这些Cache有效缩短了 I/O系统调用(比如read,write,getdents)的时间。
磁盘的操作有逻辑级(文件系统)和物理级(磁盘块),这两种Cache就是分别缓存逻辑和物理级数据的。
Page cache实际上是针对文件系统的,是文件的缓存,在文件层面上的数据会缓存到page cache。文件的逻辑层需要映射到实际的物理磁盘,这种映射关系由文件系统来完成。当page cache的数据需要刷新时,page cache中的数据交给buffer cache,因为Buffer Cache就是缓存磁盘块的。但是这种处理在2.6版本的内核之后就变的很简单了,没有真正意义上的cache操作。
Buffer cache是针对磁盘块的缓存,也就是在没有文件系统的情况下,直接对磁盘进行操作的数据会缓存到buffer cache中,例如,文件系统的元数据都会缓存到buffer cache中。
简单说来,page cache用来缓存文件数据,buffer cache用来缓存磁盘数据。在有文件系统的情况下,对文件操作,那么数据会缓存到page cache,如果直接采用dd等工具对磁盘进行读写,那么数据会缓存到buffer cache。
所以我们看linux,只要不用swap的交换空间,就不用担心自己的内存太少.如果常常swap用很多,可能你就要考虑加物理内存了.这也是linux看内存是否够用的标准.
如果是应用服务器的话,一般只看第二行,+buffers/cache,即对应用程序来说free的内存太少了,也是该考虑优化程序或加内存了。
http://blog.chinaunix.net/space.php?uid=22741583&do=blog&id=3088342
发表评论
-
阿里技术嘉年华
2012-07-06 15:07 0" target="_blank" ... -
在你的应用中嵌入http服务器
2012-06-28 19:53 820最近找到一个可嵌入的Http服务器libmicrohttpd: ... -
java unicode utf-8 String.getBytes
2012-06-01 17:29 5067Unicode(统一码、万国码、单一码)是一种在计算机上使用的 ... -
linux内存管理浅析
2012-05-29 19:58 1050[地址映射](图:左中) li ... -
top输出到文件
2012-05-18 19:27 1149top输出到文件 2009年08月20日 星期四 上午 11: ... -
TCP连接关闭过程笔记
2012-05-15 18:42 927http://blog.csdn.net/fbysss/art ... -
Too many open files
2012-05-15 14:45 1193java.net.SocketException: Too m ... -
linux shell小知识
2012-04-18 10:43 767日期操作: 取当天日期为`date +%Y%m%d` 取 ... -
linux c 正则表达式
2012-04-17 15:59 1410#include <stdio.h> #incl ... -
Linux的诞生和发展
2012-04-16 14:53 805Linux 的诞生和发展 Linux 操作系统是UNI ... -
Linux下查看文件编码,文件编码格式转换和文件名编码
2012-04-16 14:53 1163如果要在Linux中操作windo ... -
进程地址空间与虚拟存储空间的理解
2012-04-16 14:53 1110【转自】http://blog.csdn.net/do2jia ... -
TCP带外数据
2012-04-16 14:54 840流式的数据是走TCP协议,数据包是有序的,比如你依次发送了数据 ... -
TCP的状态,兼谈Close_Wait和Time_Wait的状态
2012-08-10 19:14 7374TCP的状态,兼谈Close_Wait和Time_Wait的状 ... -
linux find命令详解
2012-08-10 19:14 896每一种操作系统都是由 ... -
Linux服务器网络开发模型
2012-03-23 13:21 0在 “Nginx 0.7.x + PHP 5.2.10(F ... -
Linux Socket Select 函数
2012-03-23 11:24 0linux 的socket函数分为阻塞和非阻塞两种方式,比如a ... -
setsockopt中参数之SO_REUSEADDR的意义
2012-03-23 11:10 0网友vmstat多次提出了这个问题:SO_REUSEADDR有 ... -
网络字符顺序与主机字符顺序的区别
2012-08-10 19:15 914存在两种字节顺序:NBO与HBO 网络字节顺序NBO(Netw ... -
linux c socket
2012-03-23 10:40 0<< Back to man.ChinaUnix. ...
相关推荐
在Linux系统中,`free`命令是一个非常实用的工具,用于查看系统内存的状态,包括物理内存(RAM)和交换空间(Swap)。通过分析`free`命令的输出,我们可以获取到系统内存使用的详细信息,这对于系统管理员监控和优化...
《Linux命令详解手册》是一份全面的Linux命令参考资料,它详细介绍了Linux系统中广泛使用的一系列命令,覆盖了系统管理、系统设置、文档编辑以及压缩备份等多个方面。为了方便用户查阅,该手册按照命令的功能进行了...
Linux命令详解手册是一份关于Linux操作系统下各种命令的权威指南,涵盖了系统管理、系统设置、文档编辑和压缩备份等众多方面的命令。这份手册详细列举并解释了每个命令的用途和使用方法,是Linux用户管理和维护系统...
《Linux命令详解词典》是一本详尽解析Linux操作系统中常用命令的参考书籍。Linux作为开源、免费的操作系统,其强大的命令行工具是其高效工作的重要组成部分。这本书旨在帮助用户理解和掌握这些命令,从而更好地在...
Linux命令详解手册是一本适合Linux新手和有一定基础的用户深入学习Linux命令的指南。它详细介绍了大量的Linux命令,涵盖了系统管理、系统设置、文档编辑以及压缩备份等多个方面的操作。掌握这些命令对于理解和使用...
"Linux命令详解手册"提供了全面的命令指南,帮助用户理解和运用各种命令来高效地操作Linux系统。下面将详细阐述Linux命令的主要类别及其重要用途。 1. 文件和目录管理: - `ls`:列出目录内容,常用于查看当前目录...
在Linux操作系统中,掌握一些基本的函数和命令是至关重要的,无论是对于初学者还是经验丰富的开发者,这都是一项必备技能。下面将详细讲解Linux中的常用函数和命令。 首先,我们来了解一下Linux中的常用函数。在...
### free命令详解 #### 命令概述 `free`命令是Linux系统中一个非常重要的工具,用于报告系统中物理内存、虚拟内存的使用情况。它可以帮助用户了解系统的内存使用状态,判断系统是否存在内存瓶颈等问题。 #### 命令...
Linux free命令 Linux free命令用于显示内存状态。 free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。 语法free [-bkmotV][-s ] 参数说明: -b 以Byte...
本资源"Linux命令大全"包含了516个Linux命令的详细资料,对于学习和理解Linux操作系统至关重要。下面,我们将深入探讨这个资源中涉及的一些关键知识点。 1. **命令手册**: - 在Linux世界中,命令手册(man pages...
"Linux 命令详解手册中文版"正是为初学者提供的一份实用指南,帮助他们快速入门Linux世界。 1. **基础命令**: - **ls**:列出目录内容,用于查看当前目录下的文件和子目录。 - **cd**:改变工作目录,用于在文件...
"Linux的free命令详解" Linux的free命令详解命令详解-内存是拿来用的内存是拿来用的绍linux的free命令。我告诉有朋友我一直用linux。他问我了一下我为什么linux使用的内存这么高。他讲他1G的内在free才232M。讲win ...
在这本《Linux命令详解手册 英文版》中,作者Christopher Negus和François Caen提供了超过1000个针对Fedora、CentOS以及Red Hat的命令。这些命令涵盖了从基本的系统管理命令到高级的网络配置和故障排除工具的广泛...
Linux命令大全提供了丰富的命令详解,帮助用户深入理解和运用这些工具。以下是一些重要的Linux命令及其详细解释: 1. `ls`:列出目录内容,常用选项有 `-l` 以详细格式显示,`-a` 显示所有文件(包括隐藏文件),`-...
掌握Linux系统操作命令是进行有效管理和维护系统的关键。本文将深入解析一系列基础及高级的Linux命令,帮助你快速入门并逐步提升到精通水平。 1. **用户系统相关命令**: - `su` 和 `sudo` 用于切换用户,`sudo -i...
内含Linux常用必会60+个命令实例以及详解。 Linux提供了大量的命令,利用它可以有效地完成大量的工作, 如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。 所以,在Linux系统上工作离不开使用系统提供的...
### 常用Linux命令详解 #### 一、ls - 文件与目录的监视 `ls` 命令用于列出当前目录下的文件和目录。它有许多选项可用于定制输出。 - **-a**: 显示所有文件,包括那些以`.`开头的隐藏文件。 - **-d**: 只列出目录...