Amazon-Web-Services

為具有少量頻繁寫入的 k8 ec2 實例集群安裝 Amazon EFS 性能

  • February 21, 2020

如果有多個帶有多個容器的 ec2 實例都寫入單獨目錄中的單獨文件,那麼共享掛載 EFS 的性能如何?一個容器上的寫入性能是否會受到另一個容器寫入(在相同或不同節點上)的不利影響。

寫入通常非常小(~kbs)並且可以突發到毫秒頻率。

這當然取決於:)

Amazon 建議跨多個 EC2 實例擴展您的工作負載以獲得更高的總吞吐量。另一方面,與在一個大塊中寫入相同數量的數據相比,寫入小文件堆的成本要高得多。查看Amazon EFS 性能提示了解更多詳細資訊。

另請注意,EFS 卷的實際吞吐量取決於儲存的數據量。您儲存的越多,吞吐量就越高。如果您希望即使數據很少也能獲得高吞吐量,您可以為預置吞吐量付費。

最後,性能可以通過NFS 記憶體來提高- 您可以嘗試啟用fscfs-cache或其他一些 NFS 記憶體機制,這些機制將在本地匯集寫入並將它們突發寫入更大的塊中。

最後,您必須對應用程序/k8s 集群在實際負載下的性能進行基準測試。


順便說一句,您真的需要將文件儲存在 NFS 上嗎?有沒有更好的方法來建構您的應用程序?也許您可以通過 Kinesis 或 SQS 從您的 K8S pod 發送數據到“整合微服務”,該服務可以收集一些數據並將它們儲存在更大的塊中?也許是 S3 而不是 EFS?或者在沒有首先儲存它們的情況下進行任何需要完成的處理?

單獨儲存數以萬計的小文件很難獲得高性能。我會先認真考慮其他選擇。

希望有幫助:)

引用自:https://serverfault.com/questions/1003989