By using AWS re:Post, you agree to the Terms of Use

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



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/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?

3 Answers
Accepted Answer

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 .

answered 8 months ago
  • 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.


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.

answered 8 months ago
  • 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


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

answered 8 months ago
  • 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.

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions