日期:2014-05-16  浏览次数:20836 次

问个缓存的问题
$ top

top - 09:55:23 up 460 days, 22:29,  2 users,  load average: 0.05, 0.19, 0.21
Tasks: 133 total,   1 running, 132 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.3%us,  0.1%sy,  0.0%ni, 99.5%id,  0.0%wa,  0.0%hi,  0.1%si,  0.0%st
Mem:   8175452k total,  8116528k used,    58924k free,   593356k buffers
Swap:  6881272k total,  1145040k used,  5736232k free,  2573216k cached

1. Mem中的buffer free,Swap中的cached都是什么意思?

2. 我的理解是cached和buffers在系统内存不够时 是会回收的,还不够就用swap。但是现在系统有2.5G的cached,但却用了1G多的swap,这个什么原因,正常吗?

------解决方案--------------------
可能内存使用峰值已经超过内存了,导致部分swap,还没来得及换进内存。
------解决方案--------------------
MEM中的free当然是空闲内存,buffer是缓冲区
SWAP中的cache是曾经从内存中交换出来,后面又交换进去的内存那部分swap

2. 我的理解是cached和buffers在系统内存不够时 是会回收的,还不够就用swap。但是现在系统有2.5G的cached,但却用了1G多的swap,这个什么原因,正常吗? 
这个很正常啊,你开机那么多天了,cached就会越来越大。cached是为了优化而存在的,系统不用的时候暂时不回收的那部分曾经使用过的swap,swap现在用的是1G多,cached也属于空闲的swap。