amazon-web-services - 适用于频繁更新的关键小文件的 AWS EFS
问题描述
我们应用程序的用户群已达到 200 万用户,我们计划使用 AWS 扩展应用程序。
我们面临的主要问题是共享数据的处理,包括缓存、上传、模型、会话等。
一个选项是 AWS EFS,但它会降低应用程序的性能,因为文件非常小,从几字节到几 MB 不等,并且更新非常频繁。
我们可以使用 Memcache/Redis 进行会话,使用 S3 进行上传,但仍然需要管理缓存、模型和其他一些共享文件。
是否有任何替代 EFS 的方法或任何方法可以使 EFS 在这种小文件经常更新的情况下工作?
解决方案
小文件和频繁更新对于 EFS 来说应该不是问题。
一些用户在原始版本中遇到的问题是它有两个紧密耦合在一起的维度——可用吞吐量是你支付多少的函数,你支付多少是总大小的函数文件系统(所有文件组合在一起,无论单个文件大小如何)......所以越大,速度越快。
但从那时起,他们引入了“预置吞吐量”,允许您将这两个维度解耦。
这种默认的 Amazon EFS 吞吐量突增模式提供了适合大多数应用程序的简单体验。现在,借助预置吞吐量,吞吐量要求高于 Amazon EFS 默认吞吐量突增模式所允许的应用程序可以立即且始终如一地达到所需的吞吐量水平,而不受数据量的影响。
https://aws.amazon.com/about-aws/whats-new/2018/07/amazon-efs-now-supports-provisioned-throughput/
如果您使用此功能,您将支付您预置的吞吐量与本来应该包含的吞吐量之间的差额,无论如何,这取决于数据的大小。
另请参阅Amazon Elastic File System 用户指南中的Amazon EFS 性能。
预置吞吐量可以被激活和停用,因此不要将这与还有两种性能模式(称为General Purpose和Max I/O )混淆,创建文件系统时必须选择其中一种,而这个选择可以以后改不了。这些与底层基础架构中的可选折衷有关,建议的做法是选择通用用途,除非您有理由不这样做,基于观察到的指标。Max I/O模式没有与通用模式相同的元数据一致性模型。
推荐阅读
- google-apps-script - 在 Google 表格中创建顺序自动生成 ID 的公式
- ios - VStack中的SwiftUI不同的对齐文本
- ios - 如何让flutterUI文本缩放?
- java - 为什么我的代码可以在某些网站上运行,但在 NetBeans 中却不行?
- mysql - 在 MySQL 5.7.29 中创建触发器以在更改的行上设置时间戳
- javascript - 使用 jquery/js 打开和关闭表单
- mysql - 如何在 MySQL 中合并结果
- powershell - 为来宾用户使用 New-AzureADMSInvitation 时,用于 InviteRedirectUrl 的 URL 是什么?
- vue.js - [Vue 警告]:客户端渲染的虚拟 DOM 树与服务器渲染的内容不匹配( Nuxt / Vue / lerna monorepo )
- angular - 茉莉花测试失败 - 但日志表明并非如此