在Windows系统中查看内存的使用状况很简单,想必你们都已经耳熟能详了,那么在Linux系统如何查看内存使用状况呢?下面和你们分享在Linux系统下查看内存使用状况的free命令: 缓存
下面是对这些数值的解释: oracle
total:总计物理内存的大小。 app
used:已使用多大。 ide
free:可用有多少。 工具
Shared:多个进程共享的内存总额。 性能
Buffers/cached:磁盘缓存的大小。 spa
第三行(-/+ buffers/cached): code
used:已使用多大。 htm
free:可用有多少。 进程
第四行就很少解释了。
区别:第二行(mem)的used/free与第三行(-/+ buffers/cache) used/free的区别。 这两个的区别在于使用的角度来看,第一行是从OS的角度来看,由于对于OS,buffers/cached 都是属于被使用,因此他的可用内存是16176KB,已用内存是3250004KB,其中包括,内核(OS)使用+Application(X, oracle,etc)使用的+buffers+cached.
第三行所指的是从应用程序角度来看,对于应用程序来讲,buffers/cached 是等于可用的,由于buffer/cached是为了提升文件读取的性能,当应用程序需在用到内存的时候,buffer/cached会很快地被回收。
因此从应用程序的角度来讲,可用内存=系统free memory+buffers+cached。
如上例:
2795064=16176+110652+2668236
接下来解释何时内存会被交换,以及按什么方交换。 当可用内存少于额定值的时候,就会开会进行交换。
如何看额定值:
用free -m查看的结果:
查看/proc/kcore文件的大小(内存镜像):
备注:占用内存的测量
测量一个进程占用了多少内存,Linux系统为咱们提供了一个很方便的方法,/proc目录为咱们提供了全部的信息,实际上top等工具也经过这里来获取相应的信息。
输出解释
CPU 以及CPU0。。。的每行的每一个参数意思(以第一行为例)为:
参数 解释 /proc//status
Size (pages) 任务虚拟地址空间的大小 VmSize/4
Resident(pages) 应用程序正在使用的物理内存的大小 VmRSS/4
Shared(pages) 共享页数 0
Trs(pages) 程序所拥有的可执行虚拟内存的大小 VmExe/4
Lrs(pages) 被映像到任务的虚拟内存空间的库的大小 VmLib/4
Drs(pages) 程序数据段和用户态的栈的大小 (VmData+ VmStk )4
dt(pages) 04
查看机器可用内存
咱们经过free命令查看机器空闲内存时,会发现free的值很小。这主要是由于,在Linux系统中有这么一种思想,内存不用白不用,所以它尽量的cache和buffer一些数据,以方便下次使用。但实际上这些内存也是能够马上拿来使用的。
因此 空闲内存=free+buffers+cached=total-used