我们已经通过自动缩放和 EFS 在 aws ec2 上托管了我们的 wordpress 站点。但是突然之间,PermittedThroughput 变得接近零字节,并且 BurstCreditBalance 变得越来越少(从 2TB 到几 Mbs!)。EFS 大小只有 2GB 左右!我们第二次面临这个问题。我想知道是否有人对这种情况有类似的经验或任何建议。计划在未来几天从 EFS 转移到 NFS 或 glusterfs。
2 回答
Amazon EFS 的吞吐量随着文件系统的增长而扩展。
...
文件系统的突发能力(时间长度和突发率)与其大小直接相关。较大的文件系统可以在较长时间内以较大的速率突增。因此,如果您的应用程序需要突发更多(即,如果您发现您的文件系统已用完突发信用),您应该增加文件系统的大小。
笔记
Amazon EFS 没有预置,因此要使您的文件系统更大,您需要向其中添加更多数据。
您提到您的文件系统仅存储 2 GiB 数据。这就是问题所在:乍一看它是违反直觉的,但 EFS 实际上会随着它变大而变得更快……反之亦然。小型文件系统仅以每 GiB 存储数据每秒 50 KiB/秒的速率累积突发信用。
因此,对于 2 GiB 文件系统,您将通过每天传输非常少量的数据来耗尽您的信用:
60 sec/minute ×
60 min/hour ×
24 hr/day ×
0.05 MiB/s per GiB stored ×
2 GiB stored = 8,640 MiB/day
所以每天大约 8.6 GiB是这个文件系统可以承受的所有数据传输。
这似乎很奇怪,直到您记得您每月只需支付 0.60 美元。
您可以通过简单地存储更多数据来线性提高性能。用于计算的文件系统大小每小时更新一次,所以如果你走这条路,在几个小时内你应该会看到一个上升。
到目前为止它运行良好的原因是每个新文件系统都带有相当于 2.1 TiB 的初始信用余额。这主要是为了让文件系统在您最初将数据加载到文件系统时快速,但在总存储量较低的环境中,例如您描述的环境,它将持续数天或数周,然后突然(显然)您终于看到系统稳定到其正确的基线行为。
从本质上讲,您需要为两个相互关联的参数(总存储容量和基线吞吐量)的设置付费,这两个参数都不是您可以配置的。如果您想要更多存储空间,只需存储更多文件……如果您想要更高吞吐量,只需……存储更多文件。
在这里聚会有点晚了。
TL;博士
要增加总基线吞吐量,请生成虚拟数据以增加文件系统的大小。这将允许您的文件系统具有更好的基线和突发性能。
有两个考虑:
- 每 GB 的成本因地区而异,但价格约为每 GB 0.30 - 0.36 美元(截至 2018 年)
- 随着文件系统大小的增加,突发聚合吞吐量、最大突发持续时间和文件系统可以突发(每天)的时间百分比等其他指标也会增加。意见:我喜欢获得大约 256+ GB 的文件系统。
性能指标:
- 基线聚合吞吐量
- 突发聚合吞吐量
- 最大突发持续时间
- 文件系统可以突发的时间百分比(每天)
查看性能文档以了解有关每个指标的增加如何工作的更多信息。
在非 Windows 服务器上,您可以使用以下脚本生成虚拟数据以增加文件系统大小:
#!/bin/bash
COUNTER=0
while [ $COUNTER -lt $1 ]; do
# Use DD to generate 1MB of data 1024 times from /dev/zero and add the newly created file to $2/N.txt
dd if=/dev/zero of=$2/$COUNTER.txt bs=1048576 count=1024
echo "Added file ${COUNTER}.txt to ${2}/"
((COUNTER++))
done
# Save this file as create.sh
# Be sure to run: sudo chmod +x create.sh
如果您打算从安装了 EFS 文件系统的 EC2 实例运行此脚本,我的建议是使用具有高网络性能的 EC2 实例。这将有助于减少为时间紧迫的人生成文件所需的时间。
使用以下命令调用脚本: create.sh 256 "/mnt/efs-directory/dummy"
注意:运行上述命令意味着您将生成 256 个文件,每个文件 1GB。如果您希望拥有更小或更大的数据量,只需将 256 更改为您想要的文件系统的大小。
您可以做的其他一些事情是:
- 如果使用 Elastic Beanstalk,请为负载均衡器生成 CloudFront 分配
- 从 WordPress 中删除不必要的插件
- 为 Apache 或 Nginx 安装缓存 (OPCache)
如果您选择连接它, CloudWatch 中有一个可用于 EFS 的仪表板。它具有了解文件系统性能所需的所有指标。