How to get comparable performance to gp2/gp3 on EFS?

1

Hi,

We have recently setup EFS to allow horizontal scaling our web servers by attaching the same site files to multiple EC2 instance in auto scaling group.

However, we have noticed that the performance is 10x slower (*at least) for the EFS that we have setup on pretty much every operations compared to our local setup

For example, simple checking file size for 9G files on local folder vs EFS cloned folder shows the difference is about 10x slower 10s (local) vs 100s (efs) using the same ec2 instance

100G gp3

/local/conf$ time du -h | tail -n 1
9.0G    .

real    0m10.298s
user    0m0.303s
sys     0m1.126s

EFS

/efs/conf$ time du -h | tail -n 1
9.0G    .

real    1m43.433s
user    0m0.583s
sys     0m7.199s

How can we get comparable performance, or this is simply not possible with EFS? Or perhaps fsx or even setup our own NFS server with gp3 would be a much better option?

We also have 2 separate instances of EFS to store different sets of data

fs-001739bb594b2f684 ~ 9.2G
fs-0a138164b6a903474 ~ 3.3G

Does it make more sense to put them together to get higher performance, as we notice that we can't specify EFS size, yet the IOPS/bandwidth are supposedly scaled with the total data size in EFS?

已提問 2 年前檢視次數 1124 次
3 個答案
1
已接受的答案

If you are looking for high-performance NFS-accessible storage, you should try FSx for OpenZFS. It provides local-like performance with fully managed shared file storage, supports NFS v3, v4, v4.1, v4.2, and offers powerful ZFS capabilities for working with data .

AWS
delwio
已回答 2 年前
  • Hi,

    Thanks for the suggestion, we were also looking into FSx as well but it seems to be a bit more costly and requires additional setup.

    It would have been a lot simpler if AWS would make it clear that EFS is not really suitable for typical web application performance unless all contents are cached in memory given its poor performance.

0

Can you elaborate on the cost and additional setup? The all-in pricing for FSx for OpenZFS is ~10c/GB-mo, and ~5c/GB-mo if you include the impact of compression. (You can use the AWS Pricing Calculator to create a custom estimate.) As for additional setup, you can quick-create a file system via the FSx Console and mount it to your NFS client in minutes.

AWS
delwio
已回答 2 年前
  • Actually, that's was exactly what I have used, as the storage it self was cheap, assuming smallest storage of 64 GB

    Total monthly cost for FSx for OpenZFS file system storage: 5.76 USD
    Total monthly cost for FSx for OpenZFS backup storage: 0 USD
    Total cost for FSx for OpenZFS storage and backups (monthly): 5.76 USD
    

    The throughput seems to be confusing as regardless what number I use for throughput (0 to 64 Mbps), it charges 16.64 USD a month

    Max (64.00 MBps, 0 Mbps) = 64.00 MBps per month (Provisioned throughput capacity)
    64.00 Mbps x 0.26 USD per Month = 16.64 USD
    Total monthly cost for FSx for OpenZFS file system throughput: 16.64 USD
    3 IOPS per GB of SSD storage (default) x 64.00 GB per month = 192.00 total default provisioned IOPS
    Max (0 miniumum additional IOPS, 0 additional user-provisioned IOPS) = 0.00 provisioned SSD IOPS
    Total monthly cost for FSx for OpenZFS Provisioned IOPS: 0 USD
    Total cost for FSx for OpenZFS throughput and IOPS (monthly): 16.64 USD
    

    https://calculator.aws/#/estimate?id=5c11ccd2b6a6504f00667ff1fbf3f14d680828c1

0

We have setup FSx with 64G and default throughput/IOPs configuration, the performance is a >2x better compared to EFS

/efs/conf$ time du -h | tail -n 1
9.0G    .

real    0m41.206s
user    0m0.598s
sys     0m4.207s

But still 4x slower than storage attached with EBS

已回答 2 年前
  • Can you confirm that your EC2 client is located in the same subnet/AZ as your FSx for OpenZFS file system? We would expect performance to be much closer to locally attached EBS.

您尚未登入。 登入 去張貼答案。

一個好的回答可以清楚地回答問題並提供建設性的意見回饋,同時有助於提問者的專業成長。

回答問題指南