针对具有少量频繁写入的 EC2 实例的 K8 集群安装了 Amazon EFS 性能

针对具有少量频繁写入的 EC2 实例的 K8 集群安装了 Amazon EFS 性能

如果有多个 ec2 实例和多个容器,所有容器都写入不同目录中的不同文件,那么共享挂载的 EFS 性能如何?一个容器的写入性能是否会受到另一个容器写入(在相同或不同的节点上)的不利影响。

写入通常非常小(~kbs)并且可以突发到ms频率。

答案1

这取决于当然 :)

Amazon 建议跨多个 EC2 实例扩展您的工作负载,以获得更高的总吞吐量。另一方面,写入大量小文件比在一个大 blob 中写入相同数量的数据具有更高的开销。查看Amazon EFS 性能提示更多细节。

还要注意的是,实际吞吐量EFS 卷取决于存储的数据量。存储的越多,吞吐量越高。如果你想要高吞吐量,即使数据很少,你也可以支付预配吞吐量

最后,可以通过以下方式提高性能NFS 缓存- 您可以尝试启用金融服务委员会或者fs 缓存或者一些其他 NFS 缓存机制,将在本地汇集写入并以更大的块进行突发写入。

最后你必须基准您的应用程序/k8s集群在实际负载下的表现如何。


顺便问一下,你真的需要将文件存储在 NFS 上吗?有没有构建应用程序的更好方法? 也许您可以通过 Kinesis 或 SQS 将 K8S pod 中的数据发送到“整合微服务”,该微服务可以收集一些数据并将其存储在更大的块中?也许发送到 S3 而不是 EFS?或者做任何需要进行的处理,甚至不需要先存储它们?

单独存储数以百万计的小文件很难带来高性能。我会首先认真考虑其他选择。

希望有帮助:)

相关内容