13

七条有关AWS EFS性能的重要提示

 4 years ago
source link: http://os.51cto.com/art/202005/616215.htm
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

【51CTO.com快译】 您是否使用过 Amazon EFS ?它的主要用途是让您能够为那些基于 Linux 的应用负载和程序,构建出基于云端的网络文件系统。由于 EFS 的结构和功能都类似于本地的基础架构,因此您可以轻松地传输各种既有的文件。不过,在您打算将任何应用负载移入EFS之前,请先对EFS进行“试驾”,并在移入之后,定期执行各项性能方面的优化。

当然,有过实际项目经验的小伙伴都知道:在大多数情况下,性能并不是一门精确的科学,而且会涉及到应用的各个真实环境与使用状态。因此,在优化性能时,我们往往无法一蹴而就,需要持续、甚至反正地进行自动化或人工等方面的设置和尝试。

在本文中,您将学习到 AWS EFS 的基本概念,如何对其进行配置和试用,以及如何通过七个重要方面,来保持 EFS 的应用负载能够平稳高效地持续运行。

什么是AWS EFS?

弹性文件系统( Elastic File System EFS )是 AWS 中的一种存储服务,可被用于在云端重新创建网络文件系统。基于网络文件系统 v4 NFSv4 )的EFS,主要是针对基于 Linux 的应用负载和程序而设计的。您可以顺畅地将其与 AWS 的其他服务、以及本地资源整合使用。  

与其他存储服务相比, AWS EFS 能够提供的功能最接近本地现有的文件存储(具体请参见- -https://cloud.netapp.com/blog/ebs-efs-amazons3-best-cloud-storage-system )。通过它,您可以轻松地将本地现有的文件结构转移到云端,并享有如同访问本地文件那些进行各种流畅操作的体验。为了达到该目的,您既可以通过在 EC2 Elastic Compute Cloud )中托管应用程序,然后将实例附加到 EFS 上,也可以将 EFS 用作独立的文件系统。

EFS 中,您可以选择如下两种访问方式:

·  标准访问( Standard Access )是针对您的基本应用负载而设计的。其特点是以较高的成本换取较低的访问延迟。

·  不频繁访问( Infrequent Access )专为需要长时间存放,却鲜少使用的文件而设计。其特点是:以较低的成本换取较高的访问延迟。

当然,无论您选用哪一种访问方式, EFS 都是按照使用收费的。也就是说,它仅收取您实际使用的存储和传输带宽的费用。  

如何试用EFS?

在将文件传输到 EFS 之前,您往往需要试用该服务。据此,您不但可以熟悉其相关的配置,评估其运行的性能,而且能够通过与当前的本地系统作比较,更全面地预估在使用EFS时所需要的资源配置水平。下面,让我们从EFS提供的“免费套餐( free tier )”开始吧。

免费的 EFS   tier 提供了可以使用 12 个月的 5 GB 存储空间。如果您手头已经具有了可以将文件系统挂载到的 EC2 中的实例,那么EFS的试用并不困难。当然,如果您不喜欢该“套餐”的话,也可以选用一种适用于 EC2 的免费tier,它提供的 750 小时使用时长,足够让您从容地完成各项测试。  

为了建立自己的demo,您可以通过命令行界面( CLI )、或管理控制台( Management Console )来创建各种资源。具体有关如何使用管理控制台来设置和连接相应的服务,我们在此就不赘述了。如果您感兴趣的话,可以通过链接- -   https://docs.aws.amazon.com/efs/latest/ug/getting-started.html ,去参考 AWS 的相关文档。  

值得一提的是,请您在试用过程中,尽可能实际地去模拟对于目标文件系统的各种使用操作。例如:您可以添加多个实例,使用单线程和多线程两种方式去编写文件,以及采用标准和不频繁两种访问方式去访问各类数据。  

七条有关AWS EFS性能的重要提示

一旦您决定了采用 EFS 服务,那么就需要将自己的关注点转移到确保能够获得最大投资回报上。以下是我为您总结的七条有关优化和提升A WS EFS 性能的重要提示。并且您无需为那些不需要的资源支付额外的费用。  

1.监视您的EFS突发信用

Burst c redits EFS 最容易被忽视的方面之一。这些c redits 被设计为在流量较高的时候,暂时提高您的应用性能。但是,它们只会持续较短的时间,并且需要一段时间才能够恢复。因此,这就意味着如果credits被用完了,那么应用的性能就可能会突降。  

每个 EFS 卷通常是以 0.5 MB/s 的传输速率开始的。 Burst credits 可以将吞吐量补充并拉升到 100 MB/s ,且持续 7.2 分钟。而增加此类指标的唯一方法是:增加 EFS 卷中存储的数据量。也就是说,在最高可达到 10 GB 的数据量时,您可以持续获得良好的性能。  

2.使用异步写入操作

异步写入操作可以让您通过消减数据传输的部分路径,来减少写入操作所产生的延迟。在启用异步写入之后,数据会先被缓冲到某个 EC2 的实例中,再写入 EFS  

不过,值得注意的是,此项操作可能会影响数据的一致性。因此,如果您要求文件系统保持实时同步的话,最好不要采用该操作方法。  

3.不要从EFS中运行应用程序

如果您直接尝试着在 EFS 中运行应用程序的话,则可能会碰到性能不佳状况。毕竟, EFS 并非被设计为运行或托管应用程序。它既无法执行针对大文件的读取,又无法为管理代码库、或部署应用程序提供所需的速度。  

相反,您应该从 EBS Elastic Block Store )和 EC2 处托管或运行应用程序(请参见- -   https://dzone.com/articles/confused-by-aws-storage-options-s3-ebs-amp-efs-explained ),并为附件文件重新存储 EFS 。例如,您可以让EFS只提供的内容,而将其对应的服务限制在EC 2 中,以确保应用能够获得预期的性能。

4.监视平均I/O吞吐量

跟踪平均 I/O 吞吐量,可以帮助我们确定现有应用的瓶颈,进而设法压缩存储的区域。例如:如果某一个应用程序需要用到多个文件,那么我们就可以将这些文件组合为一个,进而减少对于吞吐量的需求。相反,针对那些频繁请求多个小文件的操作,很可能会在较短的时间内迅速达到并超出预先设定的吞吐量限制。

可见,通过减少可能的文件请求数量,我们可以降低每秒钟的 I/O 操作。这不但有助于减少延迟的开销,而且能够保持一定的性能区间。  

5.认真管理备份

由于没有可用的快照功能,因此如果您想在 EFS 中创建备份的话,则可能会遇到困难。通常,您必须使用 AWS Backup 服务,或是执行 EFS-to-EFS 来进行备份。不过,无论采用哪种方法,您都需要保存好各种备份的副本,并严密监控备份所需要的存储空间。

此外,在创建备份时,您最好安排在非工作时间,并以限速复制的方式进行创建。这样不但可以避免影响到各项标准操作的性能,而且可以防止意外b urst c redits 的发生。

6.选择正确的性能模式

在使用 EFS 时,您可以选择两种性能模式:

·  通用意图( General Purpose - 提供较低的吞吐量,以换取较低的延迟操作。它被设计为用于标准化的任务,例如:web主机或内容管理。而且,这是EFS的默认性能设置。  

·  最大 I/O Max I/O  — 提供较高的吞吐量,以换取较高的延迟。它被设计为用于处理繁琐的计算任务,例如:媒体处理或大数据分析(请参见- -https://dzone.com/articles/a-beginners-guide-to-big-data )。

7.采用并发连接

EFS 被设计为允许大规模的并发连接,并且可以同时附加多达上千个 EC2 实例。据此,您可以通过分担不同的应用程序与负载,来显著地提高整体性能。当然,在配置这些连接时,您仍然会受到各个卷的总吞吐量、以及传输速度的限制。  

总结

Amazon EFS 虽然是一个功能强大的工具,但是与许多其他自配置( self-configured )的服务一样,它仍然需要您定期进行优化。为了避免不必要的开销,您应该定期监视 EFS burst credits 和平均 I/O 吞吐量。同时,为了确保具有最佳的性能,您既可以使用异步写入操作,又应当避免从 EFS 上直接运行应用程序。此外,为了避免产生额外的计费,您不但需要管理好各种备份,而且要为应用负载选择正确的性能模式。最后,您还可以利用并发连接来提高整体性能。

原文标题: 8 Crucial Performance Tips for Amazon EFS   作者: Ilai Bavati   

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK