8

我们已经通过自动缩放和 EFS 在 aws ec2 上托管了我们的 wordpress 站点。但是突然之间,PermittedThroughput 变得接近零字节,并且 BurstCreditBalance 变得越来越少(从 2TB 到几 Mbs!)。EFS 大小只有 2GB 左右!我们第二次面临这个问题。我想知道是否有人对这种情况有类似的经验或任何建议。计划在未来几天从 EFS 转移到 NFS 或 glusterfs。

cloudwatch graphp

在此处输入图像描述

4

2 回答 2

6

Amazon EFS 的吞吐量随着文件系统的增长而扩展。

...

文件系统的突发能力(时间长度和突发率)与其大小直接相关。较大的文件系统可以在较长时间内以较大的速率突增。因此,如果您的应用程序需要突发更多(即,如果您发现您的文件系统已用完突发信用),您应该增加文件系统的大小。

笔记

Amazon EFS 没有预置,因此要使您的文件系统更大,您需要向其中添加更多数据。

http://docs.aws.amazon.com/efs/latest/ug/performance.html

您提到您的文件系统仅存储 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 的初始信用余额。这主要是为了让文件系统在您最初将数据加载到文件系统时快速,但在总存储量较低的环境中,例如您描述的环境,它将持续数天或数周,然后突然(显然)您终于看到系统稳定到其正确的基线行为。

从本质上讲,您需要为两个相互关联的参数(总存储容量和基线吞吐量)的设置付费,这两个参数都不是您可以配置的。如果您想要更多存储空间,只需存储更多文件……如果您想要更高吞吐量,只需……存储更多文件。

于 2017-01-16T11:18:02.680 回答
0

在这里聚会有点晚了。

TL;博士

要增加总基线吞吐量,请生成虚拟数据以增加文件系统的大小。这将允许您的文件系统具有更好的基线和突发性能。


有两个考虑:

  1. 每 GB 的成本因地区而异,但价格约为每 GB 0.30 - 0.36 美元(截至 2018 年)
  2. 随着文件系统大小的增加,突发聚合吞吐量、最大突发持续时间和文件系统可以突发(每天)的时间百分比等其他指标也会增加。意见:我喜欢获得大约 256+ GB 的文件系统。

性能指标:

  1. 基线聚合吞吐量
  2. 突发聚合吞吐量
  3. 最大突发持续时间
  4. 文件系统可以突发的时间百分比(每天)

查看性能文档以了解有关每个指标的增加如何工作的更多信息。

在非 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 更改为您想要的文件系统的大小。


您可以做的其他一些事情是:

  1. 如果使用 Elastic Beanstalk,请为负载均衡器生成 CloudFront 分配
  2. 从 WordPress 中删除不必要的插件
  3. 为 Apache 或 Nginx 安装缓存 (OPCache)

如果您选择连接它, CloudWatch 中有一个可用于 EFS 的仪表板。它具有了解文件系统性能所需的所有指标。

于 2018-05-10T14:58:14.090 回答