当我使用 git & npm install 时,AWS EFS 太慢了
AWS EFS too slow when i use git & npm install
我正在为我的几十个静态网站使用 aws S3 存储和云端。
此外,我将 aws lambda 与 nodejs 和 EFS 一起用于 git、node_modules 并构建缓存文件。
当我从 EFS 尝试 git clone
、npm install
和 npm run build
时,它的运行速度变慢了。
但是当我从 lambda /tmp
文件夹尝试时,它的工作速度比 EFS 存储快 10 倍。
我需要像 EFS 这样的存储,因为我存储了数十个网站 git、节点包和缓存文件。那么如何提高 EFS 性能。
如果您使用了 EFS 的标准设置,您将使用可突增的信用,这些信用会随着您所做的文件更改越多而耗尽。
根据文件大小和 EFS 装载上的更改数量,您可能会耗尽可用积分,这会为附加到 EFS 装载的任何应用程序带来性能问题。您可以通过查看 BurstCreditBalance
CloudWatch 指标来检测这一点,同时留意 TotalIOBytes
的任何扁平化,因为这可能表明它已达到其最大吞吐量。
当您执行 git 克隆时,您还可以使用值为 1
的 --depth
来创建浅克隆。此选项将仅获取最新的提交,而不是克隆整个 git 历史记录。
此工作流的改进我建议重新考虑使用以下技术来提供您想要的工作流。而不是 Lambda 函数创建 CodePipeline pipeline that will trigger a CodeBuild 作业。此 CodeBuild 作业将负责 运行 您的 npm 安装任务以及任何其他操作。
CodePipeline 的部分流程是,它将沿途将遗留工件存储在 S3 中,以便您拥有它的副本。 CodePipeline 也可以在最后部署到您的 S3 存储桶。
几个可能对您有用的链接:
我正在为我的几十个静态网站使用 aws S3 存储和云端。 此外,我将 aws lambda 与 nodejs 和 EFS 一起用于 git、node_modules 并构建缓存文件。
当我从 EFS 尝试 git clone
、npm install
和 npm run build
时,它的运行速度变慢了。
但是当我从 lambda /tmp
文件夹尝试时,它的工作速度比 EFS 存储快 10 倍。
我需要像 EFS 这样的存储,因为我存储了数十个网站 git、节点包和缓存文件。那么如何提高 EFS 性能。
如果您使用了 EFS 的标准设置,您将使用可突增的信用,这些信用会随着您所做的文件更改越多而耗尽。
根据文件大小和 EFS 装载上的更改数量,您可能会耗尽可用积分,这会为附加到 EFS 装载的任何应用程序带来性能问题。您可以通过查看 BurstCreditBalance
CloudWatch 指标来检测这一点,同时留意 TotalIOBytes
的任何扁平化,因为这可能表明它已达到其最大吞吐量。
当您执行 git 克隆时,您还可以使用值为 1
的 --depth
来创建浅克隆。此选项将仅获取最新的提交,而不是克隆整个 git 历史记录。
此工作流的改进我建议重新考虑使用以下技术来提供您想要的工作流。而不是 Lambda 函数创建 CodePipeline pipeline that will trigger a CodeBuild 作业。此 CodeBuild 作业将负责 运行 您的 npm 安装任务以及任何其他操作。
CodePipeline 的部分流程是,它将沿途将遗留工件存储在 S3 中,以便您拥有它的副本。 CodePipeline 也可以在最后部署到您的 S3 存储桶。
几个可能对您有用的链接: