Linux命令(002) -- free

一、准备知识

Linux和Windows系统在内存管理机制方面有很大的不同。在Linux中经常发现空闲内存很少,似乎所有的内存都被系统占用了,表面感觉是内存不够用了,其实不然。这是Linux内存管理的一个优秀特性,在这方面,区别于Windows的内存管理。主要特点是,无论物理内存有多大,Linux都将其充份利用,将一些程序调用过的硬盘数据读入内存,利用内存读写的高速特性来提高Linux系统的数据访问性能。而Windows是只在需要内存时,才为应用程序分配内存,并不能充分利用大容量的内存空间。

在Linux系统中,还有一个交换分区的概念。交换分区的作用是将系统内核暂时不用的内存块信息换入交换分区,从而释放物理内存。而当又需要使用这部分数据时,有可将该部分信息从交换分区换入物理内存。
(1)、系统会不时的进行页面交换操作,以保持尽可能多的空闲物理内存,即使并没有什么事情需要内存,Linux也会交换出暂时不用的内存页面。这可以避免等待交换所需的时间。
(2)、页面交换式依据某种“LRU”算法。

二、内存监控命令--free

free命令用于显示系统中使用的和空闲的内存数量。看一下man page中对free命令的描述:“free命令用于显示系统中物理内存的使用和空闲情况及交换分区的使用和空闲情况。”

#语法
free [-b | -k | -m | -g | -h] [-o] [-s delay ] [-c count ] [-a] [-t] [-l] [-V]

#选项
-b:显示内存的单位为字节
-k:显示内存的单位为 KB
-m:显示内存的单位为 M
-o:忽略-/+ buffers/cache行
-t:总和信息
-s<时间>:每隔指定时间执行一次命令,单位为s
-h:以可读形式显示容量,需要free -V显示版本大于3.3
-V:版本信息

三、free命令输出分析

# free -m
             total       used       free     shared    buffers     cached
Mem:          7871       1851       6020          0        110       1419
-/+ buffers/cache:        320       7551
Swap:         8191          0       8191

free命令列含义:
total:物理内存的总大小
used:已经使用的物理内存大小
free:空闲的物理内存大小
shared:多个进程共享的内存大小
buffers/cached:磁盘缓存的大小

free命令行含义:
第二行Mem:代表物理内存使用情况
第三行(-/+ buffers/cached):代表磁盘缓存使用状态
第四行:Swap表示交换空间内存使用状态

free命令输出的内存状态,可以通过两个角度来查看:一个是从内核的角度来看,一个是从应用层的角度来看的。

(1)、从内核角度来看系统内存的使用状态:
是指内核目前可以直接分配到,不需要额外的操作,即free命令输出中第二行Mem项的值,从上面的输出可以看出:系统总计内存7871MB,已经使用了1851MB,剩余6020MB。即:7871-1851=6020

(2)、从应用层的角度来看系统内存的使用状态
是指在系统上运行的应用程序可以使用的内存大小,即free命令输出中第三行 -/+ buffers/cached的输出,可以看到,系统已使用的内存才320MB,而空闲的内存达到7551MB。即:6020+110+1419=7549MB,对于应用程序来说,buffers/cached占有的内存是可用的,因为buffers/cached是为了提高文件读取的性能,当应用程序需要用到内存的时候,buffers/cached会很快地被回收,以供应用程序使用。

四、Buffer和Cache的异同

buffers与cached都是内存操作,用来保存系统曾经打开过的文件以及文件属性信息,这样当操作系统需要读取某些文件时,会首先在buffers与cached内存区查找,如果找到,直接读出传送给应用程序,如果没有找到需要数据,才从磁盘读取,这就是操作系统的缓存机制,通过缓存,大大提高了操作系统的性能。但buffers与cached缓冲的内容却是不同的。

buffers是用来缓冲块设备做的,它只记录文件系统的元数据(metadata)以及 tracking in-flight pages,而cached是用来给文件做缓冲。更通俗一点说:buffers主要用来存放目录里面有什么内容,文件的属性以及权限等等。而cached直接用来记忆我们打开过的文件和程序。

时间: 2024-11-10 15:37:13

Linux命令(002) -- free的相关文章

linux 命令整理(自己常用)

Linux 常用命令 1. Linux下有两种用户:超级用户(root).普通用户. a) 超级用户:可以再linux系统下做任何事情,不受限制. b) 普通用户:在linux下做有限的事情. 超级用户的命令提示符是"#",普通用户的命令提示符是"$". 命令:su  [用户名] 功能:切换用户. 例如,要从root用户切换到普通用户user,则使用 su user. 要从普通用户user切换到root用户则使用 su root(root可以省略),此时系统会提示输

【Linux】linux命令大全

109个Linux命令 目录 1       文件管理... 5 1.1          basename. 5 1.2          cat 5 1.3          cd. 5 1.4          chgrp. 5 1.5          chmod. 6 1.6          chown. 7 1.7          comm.. 7 1.8          cp. 7 1.9          cut 8 1.10        dd. 8 1.11      

Linux命令自己总结

对于每一个Linux学习者来说,了解Linux文件系统的目录结构,是学好Linux的至关重要的一步.,深入了解linux文件目录结构的标准和每个目录的详细功能,对于我们用好linux系统只管重要,下面我们就开始了解一下linux目录结构的相关知识. 当 在使用Linux的时候,如果您通过ls –l / 就会发现,在/下包涵很多的目录,比如etc.usr.var.bin ... ... 等目录,而 在这些目录中,我们进去看看,发现也有很多的目录或文件.文件系统在Linux下看上去就象树形结构,所以

nl --- 每天一个Linux命令

??nl 命令在 GNU/Linux 系统中用来计算文件中行号.nl 可以将输出的文件内容自动的加上行号.其默认的结果与 "cat -n" 有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 0 等等的功能. 用途: ??计算文件中行号. ??nl 命令读取 File 参数(缺省情况下标准输入),计算输入中的行号,将计算过的行号写入标准输出. 在输出中,nl 命令根据您在命令行中指定的标志来计算左边的行. 输入文本必须写在逻辑页中.每个逻辑页有头.主体和页脚节(

【转载】每天一个linux命令(11):nl命令

转载至:http://www.cnblogs.com/peida/archive/2012/11/01/2749048.html nl命令在linux系统中用来计算文件中行号.nl 可以将输出的文件内容自动的加上行号!其默认的结果与 cat -n 有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 0 等等的功能. 1.命令格式: nl [选项]... [文件]... 2.命令参数: -b  :指定行号指定的方式,主要有两种: -b a :表示不论是否为空行,也同样列出行

64个命令,每天一个linux命令目录, shutdown,tee,rcp,

每天一个linux命令目录 开始详细系统的学习linux常用命令,坚持每天一个命令,所以这个系列为每天一个linux命令.学习的主要参考资料为: 1.<鸟哥的linux私房菜> 2.http://codingstandards.iteye.com/blog/786653 3.linux命令五分钟系列 4.其他互联网资料,google,baidu等搜索引擎 11. 每天一个linux命令(11):nl命令 12. 每天一个linux命令(12):more命令 13. 每天一个linux命令(13

每天一个linux命令:nl(12)

nl nl命令读取 file 参数(缺省情况下标准输入),计算输入中的行号,将计算过的行号写入标准输出.在输出中,nl命令根据您在命令行中指定的标志来计算左边的行.输入文本必须写在逻辑页中.每个逻辑页有头.主体和页脚节(可以有空节).除非使用-p选项,nl 命令在每个逻辑页开始的地方重新设置行号.可以单独为头.主体和页脚节设置行计算标志(例如,头和页脚行可以被计算然而文本行不能).其默认的结果与cat -n有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐0等等的功能.

linux命令格式,获取帮助及其目录结构简要理解

我们都知道,一台计算机要是没通电,和一堆废铁没什么区别.那么,通电开机进入系统后,会进入交互界面,等待用户操作,人与计算机交互界面有两种: GUI:图形用户接口.如我们平时使用的Windows  ,linux的X window,有KDE和GOME. CLI:命令行接口,使用的SHELL类型有bash ,csh,tcshell,zshell等. 例如:[[email protected] ~]# commandbin root:当前登录的用户名. dxlcentOS:当前主机的主机名.@是一个分隔

linux 命令 及学习进度综合整理

linux  命令  及学习进度综合整理 pwd 查看当前所在位置 cd  跳转到什么什么目录 ls  显示所有文件和目录 ls -l  显示目录详细信息 cd ..  返回上一级 vi  lnany.txt  创建一个文件 vi  .lnany.txt    创建一个隐藏文件 vim 是 vi 的升级版 功能更多 出现 -bash: vim: command not found 的解决办法 i. 那么如何安裝 vim 呢?输入rpm -qa|grep vim 命令, 如果 vim 已经正确安裝