首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络基础 >

gluster volume status detail 下令导致打开文件过多,进程crash

2013-12-20 
gluster volume status detail 命令导致打开文件过多,进程crash在使用gluster 3.3.0的时候,发现各brick se

gluster volume status detail 命令导致打开文件过多,进程crash
在使用gluster 3.3.0的时候,发现各brick server的glusterd进程经常crash,日志中先出现
0-management: could not get inode size for ext4 : e2fsprogs package missing
0-management: failed to get inode size

然后进程就会被linux系统kill掉,log里报告说收到了11号signal
pending frames:

signal received: 11

在gluster源码中搜索"could not get inode size"
在xlators\mgmt\glusterd\src\glusterd-utils.c中可以看到该信息出现在
glusterd_add_inode_size_to_dict方法中,它报错说没有e2fsprogs包,但实际上该包已经被安装.
后来调查发现这个方法总是在调用 volume status XX detail时被调用,因此怀疑频繁调用 volume status detail方法会导致glusterd进程crash.
测试后果然发现volume status detail方法会打开过多的文件,造成fd leak.
多次运行

        lsof -p 25595 | wc -l
        gluster volume status MountCheck detail > /dev/null
        lsof -p 25595 | wc -l

发现数量在持续增长.

热点排行