昨天,有个测试环境cachedfilesd CPU 100%,一直在跑了挺久,经查
1. CacheFiles介绍
NFS是一种经常使用到的网络共享文件系统,在分布式环境下,多台服务器的文件共享是一个问题。然而,对于这个问题,最常想到最容易做到的那就非NFS莫属了。那么如何来提高NFS文件的访问性能呢?加上缓存呗。没错。在linux下,有一个缓存文件系统叫FS-Cache,来缓存网络文件系统,如NFS。 FS-Cache是在linux内核版本2.6.30及以上版本引入的。在RHCE6.x 、CentOS6.x版本下可用。
为了使FS-Cache工作,需要缓存后端来提供实际存储。默认的缓存后端是cachefiles。因此,一旦设置了cachefiles,它会为NSF共享自动的启用文件缓存。
FS-Cache是由David Howells开发的。当前的设计是对Andrew文件系统和网络文件系统的操作。 需要开启cachefilesd的守护进程来管理。该守护进程管理缓存文件和目录,将网络文件系统如AFS、NFS永久缓存到本地磁盘。
如果没有跑nfsclient,把进程停掉即可,但是如果nfsclient在跑呢??
google,http://xmodulo.com/how-to-enable-local-file-caching-for-nfs-share-on-linux.html,得知0.10.2版本有个bug,但是我们使用的是0.10.2-1(RHEL 6.5),最新的是-3,下次升级了看看,可能会导致该进程cpu 100%,升级即可。因为昨天是哪台机器忘了,下次再碰到时候确定细节。
今天又出来了,6.5\7.0均出现过
通过执行mount | grep nfs,发现没有挂载nfs,所以停掉即可。
/etc/init.d/cachefilesd stop
参考:
https://www.lijun.me/657.html
http://bbs.chinaunix.net/thread-4059480-1-1.html
https://patchwork.kernel.org/patch/8112251/