GlusterFS在复制设置中读取目录性能 - 出了什么问题?如何优化?

时间:2014-12-18 11:13:38

标签: linux glusterfs

我目前正在使用Gluster 3.5处于复制模式的双节点群集。这是为了在尝试在服务器硬件上实现真正的3节点集群之前了解系统。

测试硬件不是高端产品:英特尔凌动D2550和英特尔i5通过Gbit端口上的以太网交叉电缆连接在一起。

在Gluster文件系统中,大约有20,000个小文件(基本上是Debian安装),类似于以后需要处理的实际使用情况(在不同的硬件上)。

由于某些旧软件将在砖块上运行,不幸的是需要定期轮询大多数这些文件,因此轮询文件统计信息时的延迟是一个因素。

我做了一个简单的测试(GlusterFS安装在Gluster节点上):

# time find | wc -l
22174

real    0m18.542s
user    0m0.224s
sys     0m0.789s

据我所知,这可能是如此之慢,因为GlusterFS必须在每个stat上轮询其他节点。

直接在brick存储目录中进行轮询时,从第二次试用开始,我得到的时间范围为0.16秒(正如预期的那样,所有内容都可以从缓存中读取)。

但是,当我关闭另一个节点,以便只剩下一个节点时,我得到了非常相似的结果:

# time find | wc -l
22174

real    0m16.445s
user    0m0.213s
sys     0m0.702s

怎么会这样?在这种情况下,什么减缓了Gluster?

通常,如何最大限度地减少GlusterFS冗余设置中的读取延迟?如果轮询崩溃之后恢复期间的真实状况暂时落后于实际情况,那么这不会成为一个问题,如果这可以改善转向性能的话。

1 个答案:

答案 0 :(得分:0)

尝试使用NFS兼容层进行安装。当你有很多小文件时它实际上更快: http://www.gluster.org/community/documentation/index.php/GlusterFS_General_FAQ#Is_the_gluster_client_or_NFS_client_faster.3F