linux服务器
[root@img ~]# lsb_release -a
LSB Version: :core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID: RedHatEnterpriseServer
Description: Red Hat Enterprise Linux Server release 6.3 (Santiago)
Release: 6.3
内存16G,但buffer就占了11G之多,cache很少,不仅这样,swap也被占用了一部分,而且总在交换(kswapd0一直占cpu90%以上)。
服务器上只有apache和nfsd服务。用作图片服务器。
buffer占的内存无法回收(用命令:echo 3 >/proc/sys/vm/drop_caches)
大家有没有遇到过类似的问题,如何解决?
[root@img ~]# free -m
total used free shared buffers cached
Mem: 16031 12443 3587 0 11448 12
-/+ buffers/cache: 983 15047
Swap: 19999 67 19932
开了那些应用
服务器上只有apache和nfsd服务。用作图片服务器。
每天晚上会用rsync进行备份,备份到专用的备份服务器上。
会不会是rsync的问题呢?备份的时候会缓存目录结构和权限等,但问题又来了,同样配置的服务器也是用作图片服务,也有rsync备份,虽然buffer也有向个G之多,但也不像这个机器那么高。
@家有叶子: 总体来说没有问题的,Swap: 19999 67 19932 ,swap 只用了67 一点点而已。buffer多说明这台机器的io 写入多,可以用top + M 来看占用内存最多的进程。
@过去的我:先谢谢你的回答。
swap用的是不多,可是奇怪的一点是,内存实际并没有用完,还有几个G,按正常来说,这种情况下是不会一直和swap交换数据的,kswapd0这个进程也不会一直运行。
这几天又好了。真是奇怪,从图上可以看出,之前内存只用于buffer缓存,几乎不有cache
@家有叶子: buffer 也是缓存的一种。。
@过去的我: 可它不会缓存文件,只是结构权限之类的,真正数据还是要从硬盘上读,这就导致负载不正常了。
@[言_午]: 解决了,内核的bug,更新了内核就好了
解决了么,我知道什么如何处理,我也是这样,这个和swap有关,你把swap关了就行了