前语:在Linux上不像在Windows上看内存那样便利,并且还有Swap这个新的概念,所以知道怎么来看Linux内存仍是有必定含义的.
在Linux下检查内存咱们一般用command free
[root@nonamelinux ~]# free
total used free shared buffers cached
Mem: 386024 377116 8908 0 21280 155468
-/+ buffers/cache: 200368 185656
Swap: 393552 0 393552
下面是对这些数值的解说:
第二行(mem):
total:总计物理内存的巨细。
used:已运用多大。
free:可用有多少。
Shared:多个进程同享的内存总额。
Buffers/cached:磁盘缓存的巨细。
第三行(-/+ buffers/cached):
used:已运用多大。
free:可用有多少。
第四行就不多解说了。
差异:
第二行(mem)的used/free与第三行(-/+ buffers/cache) used/free的差异。
这两个的差异在于运用的视点来看,榜首行是从OS的视点来看,由于关于OS,buffers/cached 都是归于被运用,所以他的可用内存是8908KB,已用内存是377116KB,其间包含,内核(OS)运用+Application(X, oracle,etc)运用的+buffers+cached.
第三行所指的是从使用程序视点来看,关于使用程序来说,buffers/cached 是等于可用的,由于buffer/cached是为了进步文件读取的功能,当使用程序需在用到内存的时分,buffer/cached会很快地被收回。
所以从使用程序的视点来说,可用内存=体系free memory+buffers+cached.
如上例:
185656=8908+21280+155468
接下来解说什么时分内存会被交流,以及按什么方交流。
当可用内存少于额定值的时分,就会开会进行交流.
怎么看额定值(RHEL4.0):
#cat /proc/meminfo
交流将经过三个途径来削减体系中运用的物理页面的个数:
1.削减缓冲与页面cache的巨细,
2.将体系V类型的内存页面交流出去,
3.换出或许丢掉页面。(Application 占用的内存页,也便是物理内存不足)。
事实上,少量地运用swap是不是影响到体系功能的。
下面是buffers与cached的差异。
buffers是指用来给块设备做的缓冲巨细,他只记载文件体系的metadata以及 tracking in-flight pages.
cached是用来给文件做缓冲。
那便是说:buffers是用来存储,目录里边有什么内容,权限等等。
而cached直接用来回忆咱们翻开的文件,假如你想知道他是不是真的收效,你能够试一下,先后履行两次指令#man X ,你就能够显着的感觉到第2次的开打的速度快许多。
试验:在一台没有什么使用的机器上做会看得比较显着。记住试验只能做一次,假如想多做请换一个文件名。
#free
#man X
#free
#man X
#free
你能够先后比较一下free后显现buffers的巨细。
另一个试验:
#free
#ls /dev
#free
你比较一下两个的巨细,当然这个buffers随时都在添加,但你有ls过的话,添加的速度会变得快,这个便是buffers ached的差异。