对于一些free或者top下,发现剩余的内存基本被用完,但是却发现top下的进程并没有使用多少。
其中一种情况,是由于linux使用了你没有使用的物理内存,来作为disk cache以此来加速系统,但是这些内存是当你需要的时候,会马上返还回来。
这也就是我们所理解的free和used与linux自身所认为的不同之处。
这里有一篇文章有进行说明:http://www.linuxatemyram.com/
top
total 总内存使用情况
used linux认为内存被使用情况
free 剩余内存
cache/buffer linux系统用空闲的没有使用的物理内存当做dist cache或者buffer用于加速系统
swap 可swap交换到磁盘的空间大小
VIRT 虚拟内存 ,红色字表名了为什么VIRT会有大于swap + total的大小
The total amount of virtual memory used by the task. It includes
all code, data and shared libraries plus pages that have been
swapped out and pages that have been mapped but not used.
RES 常驻内存,物理内存
SHR 共享内存
CPU cpu使用情况
MEM (RES)物理内存使用情况
free
Mem : linux自己说认为的内存使用情况
-/+ buffers/cache: 减去linux系统自己用于disk cache/buffer的内存,实际被进程使用的物理内存有多少(不能被其他进程分配)
加上linux系统自己用于disk cache/buffer的内存,实际现在系统还能够被其他进程分配的内存有都少。
swap: 可以被swap进磁盘的空间大小
但是现在我遇到一种更奇怪的现象,发现top下的进程没有使用多少物理内存,但是free 却显示没有多少内存了,并且cache/buffer也基本没有多少。