我刚刚尝试在 2 个 Web 服务器之间进行 Gluster 复制设置。性能非常差,简单的 PHP 文件操作(如 file_exists 和 is_readable)每个操作需要 15 - 30 毫秒。require_once 需要 1.1 秒。
与大多数 Web 设置一样,写入非常少见,读取非常常见。服务器是 2 个四核 Xeon、8 GB RAM 和 RAID 1 磁盘。它们之间有一个专用的千兆网络。这不是设置 GlusterFS 的最快方法,但不应该这么慢。
改善这种情况的最佳方法是什么?GlusterFS 调优方面的文档很缺乏,识别瓶颈所在非常困难。
我看到有人提到将文件设置为分布式而非复制式可以提高速度,但会使可靠性减半,我希望提高可靠性(两个 Web 服务器对一个),而不是降低可靠性。对于这种工作负载,是否有涉及缓存等的特定配置?是否可以有缓存来检查另一台服务器上文件的新副本,以便尽可能频繁地从本地硬盘即时提供文件?
答案1
您可以尝试通过 NFS 安装 gluster,由于 NFS 客户端完成了缓存,性能将会更好。
或者,您也可以使用 gluster set volume 选项启用小文件预取并增加缓存(使用 gluster help 查看所有选项)。
如果您没有大量的写入操作,那么对于您的场景来说,rsyncing 目录可能是一个更好的选择。