2

我想知道是否可以通过重新配置我们的 Jenkins 构建服务器以使用 EFS(AWS NFS 实施)而不是 EBS 磁盘来显着提高性能。

虽然 EFS 每 GB 贵 3 倍左右,但实际成本可能只会贵 2 倍左右,因为在 EFS 上,您只需为已用空间付费,而在 EBS 上您需要支付所有费用。

此外,EFS 还具有另一个非常重要的优势:它可以扩展而无需为升级而关闭任何东西。调整 EBS 磁盘大小是一项耗时的操作,涉及停机时间。

这个问题与成本无关,更多的是关于性能,好像我可以将构建速度提高 20%,显然可以克服存储成本(更不用说以后需要较少维护的优势)。

4

2 回答 2

11

根据我的直接经验,这对于 Jenkins 服务器来说是一个非常糟糕的主意。我们想为自己节省创建、扩展和以其他方式管理 EBS 卷的管理和自动化开销,因此我们将 Jenkins 主页安装在 EFS 上。

问题在于 Jenkins 构建通常涉及大量小文件(例如,Javascript npm 模块),这是 EFS 以及任何 NFS 实现的最坏情况。基于文件的存储要求每次文件访问都需要服务器往返。在我们的特定情况下,即使是小型项目的工作区也可能需要几分钟才能在 Jenkins 服务器上清理,其主目录位于 EFS 上。

省去麻烦,从错误中吸取教训;我们将撤销这个选择。您的 Jenkins 服务器几乎肯定会比基于 EBS 的服务器慢得多。

于 2017-02-24T20:39:05.837 回答
3

这是我尝试使用 AWS EFS 存储 Jenkins 主目录(包括工作区)的中间结果。

我的错误是,我错过了这个关于EFS性能的隐藏页面都期待正常的表现。

似乎 EFS 不仅非常慢,而且非常慢,慢到我无法从本地 EBS 卷到 EFS 卷的只有 8GB 数据的 rsync。

root@hostname:/efs# time rsync -ah --info=progress2 /jenkins/ /efs
        816.72M   6%  609.02kB/s    0:21:49 (xfr#12490, ir-chk=1009/273305)
          2.71G  18%  871.55kB/s    0:50:40 (xfr#42955, ir-chk=1070/306870)

平均速度约为 1.5mB/s,这太荒谬了。

因此,我什至决定不测试在其上运行 jenkins 构建作业 jenkins。

我试图看看这是否是由限制我速度的 AWS 引起的,但对 EFS 的监控并没有指出是这种情况。如果您必须处理大量小文件,我认为这是您可能获得的预期性能。看一下截图: 在此处输入图像描述

于 2016-10-06T14:32:37.010 回答