在GFS程序中读取数据时需要使用到文件的扩展属性,由于备份数据的文件数量较多,在频繁调用文件扩展属性时导致用时过长,经过研发人员调整rsync备份工具在调用文件扩展属性的策略后,此问题得到解决
CPU负载过高是因为在..的环境下(RHEL 4U7,底层文件系统为EXT3),Gluster在访问文件时,要频繁地进行stat()(获取文件信息)和getxattr()(获取文件扩展属性)函数调用,而过于频繁的stat()调用(由任何进程操作引起均可)会导致getxattr()调用的的cache(缓存)失效,大量的getxattr()调用在cache失效时会阻塞在内核态,其结果表现为CPU负载过高(内核态)。也就是说,CPU负载过高的原因在于..环境下的EXT3本地文件系统过于频繁地执行stat()和getxattr()操作所导致。
解决方案:
目前..的应用只有在进行rsync 备份时,才会出现CPU负载过高问题,原因是rsync频繁触发stat()操作从而导致Gluster 进程CPU负载过高,存储部门已经对