RHEL6.3 x86_64下cachefilesd占用cpu达到100%与介绍

一台rhel6.3 x86_64  2.6.32-279.el6.x86_64的机子,top发现cachefilesd占用cpu达到100%,如图

image

如果没有使用NFS Client可以把cachefilesd服务关闭!!

一:Cachefilesd介绍
    1.负责进行网络文件系统的文件和目录缓存管理的,比如AFS和NFS这类网络文件系统,需要在本地系统中存在一个Cache对象.
    2.Cachefiled在2.6.30内核中,已作为内核的一部分,已支持NFS和AFS文件系统。

二:Cachefilesd前提条件
    1.需要本地文件系统支持用户自定义的扩展文件属性,如xattr,因为cachefiles使用xttar存储额外信息来维护缓存的.
    2.ext4文件系统默认开启xattr,如果是ext3文件系统,需要加上user_xattr选项,注意:user_xattr针对缓存存储分区而言的.
三:安装
    yum install cachefilesd

四:Cachefilesd配置
    more /etc/cachefilesd.conf
    dir /var/cache/fscache
    tag mycache
    brun 10%
    bcull 7%
    bstop 3%
    frun 10%
    fcull 7%
    fstop 3%
    # Assuming you’re using SELinux with the default security policy included in
    # this package
    secctx system_u:system_r:cachefiles_kernel_t:s0

    缓存需要删除来释放空间,将最少使用的对象丢弃掉,Cachefiles是基于访问时间来清除缓存的,空的目录如果不使用将删掉
    1.dir 缓存目录,默认是/var/cache/fscache
    2.tag 指定一个FS-Cache标签,用来区分多个缓存,默认是CacheFiles
    3.secctx system_u:system_r:cachefiles_kernel_t:s0 开启selinux的话,需要更改安全上下文.
    4.brun,frun 如果剩余空间或缓存文件数量超过限制值,不会释放已使用缓存的空间
    5.bcull fcull 如果剩余空间或缓存文件数量低于限制值,将停止写入缓存,并释放已经缓存的空间
    6.bstop fstop 如果剩余空间或文件数量低于限制值,将缓存停止,并释放至比brun,frun限制或更高才能重新工作
    必须满足:
        这些都是可利用的空间和可用的文件的百分比:
        0 <= bstop < bcull < brun < 100
        0 <= fstop < fcull < frun < 100
五:缓存结构
    1.Cachefilesd模块将在缓存目录下创建2个子目录:cache和graveyard
    2.主动缓存对象存储于cache目录下,守护进程检测graveyard目录,并将删除任何出现在该目录的缓存

六:NFS挂载启用fsc选项
    mount -t nfs -o fsc,option ip:/nfs_dir /mnt/point
    1.NFS客户端挂载网络nfs共享盘符到本地,必须使用-o fsc参数.
    2.挂载后,缓存并不是自动开始工作,只有发生了读或写的操作后,缓存才会工作
    3.Cachefiles只支持小文件的缓存
七:查看Cachefilesd统计信息
    cat /proc/fs/fscache/stats
    cat /proc/fs/nfsfs/servers
    cat /proc/fs/nfsfs/volumes

此条目发表在Experience, Knowledge分类目录,贴了, , 标签。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用*标注