ajoseps Asked: 2020-02-21 16:13:15 +0800 CST2020-02-21 16:13:15 +0800 CST 2020-02-21 16:13:15 +0800 CST 为具有少量频繁写入的 k8 ec2 实例集群安装了 Amazon EFS 性能 [重复] 772 如果有多个带有多个容器的 ec2 实例都写入单独目录中的单独文件,那么共享挂载 EFS 的性能如何?一个容器上的写入性能是否会受到另一个容器写入(在相同或不同节点上)的不利影响。 写入通常非常小(~kbs)并且可以突发到毫秒频率。 nfs amazon-web-services amazon-efs 1 个回答 Voted Best Answer MLu 2020-02-21T17:02:55+08:002020-02-21T17:02:55+08:00 这当然取决于:) Amazon 建议跨多个 EC2 实例扩展您的工作负载以获得更高的总吞吐量。另一方面,与在一个大块中写入相同数量的数据相比,写入小文件堆的开销要高得多。查看Amazon EFS 性能提示了解更多详细信息。 另请注意,EFS 卷的实际吞吐量取决于存储的数据量。您存储的越多,吞吐量就越高。如果您希望即使数据很少也能获得高吞吐量,您可以为预置吞吐量付费。 最后,性能可以通过NFS 缓存来提高- 您可以尝试启用fsc或fs-cache或其他一些 NFS 缓存机制,这些机制将在本地汇集写入并将它们突发写入更大的块中。 最后,您必须对应用程序/k8s 集群在实际负载下的性能进行基准测试。 顺便说一句,您真的需要将文件存储在 NFS 上吗?有没有更好的方法来构建您的应用程序?也许您可以通过 Kinesis 或 SQS 从您的 K8S pod 发送数据到“整合微服务”,该服务可以收集一些数据并将它们存储在更大的块中?也许是 S3 而不是 EFS?或者在没有首先存储它们的情况下进行任何需要完成的处理? 单独存储数以万计的小文件很难获得高性能。我会先认真考虑其他选择。 希望有帮助:)
这当然取决于:)
Amazon 建议跨多个 EC2 实例扩展您的工作负载以获得更高的总吞吐量。另一方面,与在一个大块中写入相同数量的数据相比,写入小文件堆的开销要高得多。查看Amazon EFS 性能提示了解更多详细信息。
另请注意,EFS 卷的实际吞吐量取决于存储的数据量。您存储的越多,吞吐量就越高。如果您希望即使数据很少也能获得高吞吐量,您可以为预置吞吐量付费。
最后,性能可以通过NFS 缓存来提高- 您可以尝试启用fsc或fs-cache或其他一些 NFS 缓存机制,这些机制将在本地汇集写入并将它们突发写入更大的块中。
最后,您必须对应用程序/k8s 集群在实际负载下的性能进行基准测试。
顺便说一句,您真的需要将文件存储在 NFS 上吗?有没有更好的方法来构建您的应用程序?也许您可以通过 Kinesis 或 SQS 从您的 K8S pod 发送数据到“整合微服务”,该服务可以收集一些数据并将它们存储在更大的块中?也许是 S3 而不是 EFS?或者在没有首先存储它们的情况下进行任何需要完成的处理?
单独存储数以万计的小文件很难获得高性能。我会先认真考虑其他选择。
希望有帮助:)