Linux上的free命令简介

来源:互联网 发布:网络推广员有用吗 编辑:程序博客网 时间:2024/06/06 00:41

每次使用free时都比较迷惑,对于上面的内容一直都不是很清楚,今天仔细查了以下,和大家一起分享以下:
先看一下free的运行结果:

这里写图片描述

free打印出的内存信息主要分为两种,一种是安装的内存,一种是用磁盘虚拟的内存,就是这里的Swap,相信装过Linux系统的同学肯定不陌生交换分区,这里Swap大小就是我们分区的时候分配的大小。
下面来分别解释以下每个列的意思:

total:去掉为硬件和操作系统保留的内存后剩余的内存总量。许多人奇怪自己的电脑安装了一共8G的内存,但是显示总共只有七点几G的,现在应该没什么疑惑了把,不管Linux还是Windows都会有部分内存是保留给硬件和操作系统的!userd:当前已使用的内存总量。free:空闲的或可以使用的内存总量shared:共享内存大小,主要用于进程间通信buff(buffers):主要用于块设备数据缓冲,例如记录文件系统的metadata(目录、权限等等信息)。cache:主要用于文件内容缓冲available:可以使用的内存总量

buffers与cached的区别:

对于应用程序来说,buffers/cached 是等于可用的,因为buffer/cached是为了提高文件读取的性能,当应用程序需在用到内存的时候,buffer/cached会很快地被回收。所以从应用程序的角度来说 可用内存=系统free memory+buffers+cached.buffers是指用来给块设备做的缓冲大小,他只记录文件系统的metadata以及 tracking in-flight pages,cached是用来给文件做缓冲。那就是说:buffers是用来存储,目录里面有什么内容,权限等等,而cached直接用来记忆我们打开的文件的。关于为什么需要缓冲,这里简单解释以下:我们知道,在CPU,内存,外存的运行速度之间,存在这样的关系:CPU比内存快100倍,内存比磁盘快十万倍,且他们之间的差距还在增大!因此为了协调他们速度之间的不匹配,缓存就由此而生,在CPU内部的缓存,为了协调CPU和内存之间速度的不匹配,而内存的产生也是为了协调磁盘和CPU速度的不匹配。有个这样的一个形象的描述:把CPU的一个时钟周期看作一秒。那么,从L1 cache(CPU的一级缓存)读取信息就好像是拿起桌上的一张草稿纸(3秒);从L2 cache(CPU的二级缓存)读取信息则是从身边的书架上取出一本书(14秒);而从主存中读取信息则相当于走到办公楼下去买个零食(4分钟),而等待硬盘寻道的时间相当于离开办公大楼并开始长达一年零三个月的环球旅行,而这仅仅是寻道时间!

free的详细使用方法

语  法: free [-hbkmotV][-s <间隔秒数>]补充说明:free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。参  数:-b  以Byte为单位显示内存使用情况。-k  以KB为单位显示内存使用情况。-m  以MB为单位显示内存使用情况。-h   以比较人性化的方式显示内存使用情况。-o  不显示缓冲区调节列。-s   <间隔秒数>  持续观察内存使用状况。-t  显示内存总和列。-V  显示版本信息。   

free的实现方式

关于free的实现,其实是调用linux下的/proc/meminfo文件可以对比一下:zhoupan@Lenovo-G485:~$ free              total        used        free      shared  buff/cache   availableMem:        3636688     2286620      240768       79560     1109300     1210716Swap:       1998844           0     1998844zhoupan@Lenovo-G485:~$ cat /proc/meminfo MemTotal:        3636688 kBMemFree:          239996 kBMemAvailable:    1209972 kBBuffers:           96424 kBCached:           912480 kBSwapCached:            0 kBActive:          2535176 kBInactive:         646160 kBActive(anon):    2174012 kBInactive(anon):    77972 kBActive(file):     361164 kBInactive(file):   568188 kBUnevictable:         448 kBMlocked:             448 kBSwapTotal:       1998844 kBSwapFree:        1998844 kBDirty:                60 kBWriteback:             0 kBAnonPages:       2172872 kBMapped:           397968 kBShmem:             79560 kBSlab:             100424 kBSReclaimable:      68764 kBSUnreclaim:        31660 kBKernelStack:        8896 kBPageTables:        42788 kBNFS_Unstable:          0 kBBounce:                0 kBWritebackTmp:          0 kBCommitLimit:     3817188 kBCommitted_AS:    6151536 kBVmallocTotal:   34359738367 kBVmallocUsed:           0 kBVmallocChunk:          0 kBHardwareCorrupted:     0 kBAnonHugePages:   1112064 kBCmaTotal:              0 kBCmaFree:               0 kBHugePages_Total:       0HugePages_Free:        0HugePages_Rsvd:        0HugePages_Surp:        0Hugepagesize:       2048 kBDirectMap4k:      175872 kBDirectMap2M:     3602432 kBDirectMap1G:           0 kB>>由于系统在高速的运转,可能存在部分数据不相同
0 0
原创粉丝点击