Logo

dev-resources.site

for different kinds of informations.

AWS EFS Elastic vs Burstable throughput (benchmark)

Published at
12/29/2022
Categories
aws
efs
benchmark
performance
Author
dzhuneyt
Categories
4 categories in total
aws
open
efs
open
benchmark
open
performance
open
Author
8 person written this
dzhuneyt
open
AWS EFS Elastic vs Burstable throughput (benchmark)

With the recent announcement of AWS EFS Elastic Throughput mode, I was curious to understand if it's actually any better than the Burstable throughput mode, which I've used as the file storage for a few of my WordPress sites.

I was encountering a few hiccups here and there during WordPress version or plugin upgrades, because of the way the Burstable throughput mode works. Basically as long as your app is not doing any IO operations, the EFS accumulates some burst credits, which are then used during periods of reads/writes, up to a certain limit, after which (when the burst credits are depleted) the EFS read/write operations become painfully slow (at least from my experience).

The announcement of Elastic throughput mode promises that you no longer have to worry about unpredictability of reads/writes to the file system and you should get a pretty consistent performance when using EFS, without resorting to Provisioned throughput mode, which can be pretty expensive due to over-provisioning during prolonged periods of low IO activity.

What better way to evaluate and compare two options than creating a benchmark that does it programmatically for me. Here are the results.

Benchmark results

Writing 10 files, 1KB each

Elastic Bursting Time difference
95.2ms 100.6ms -5.37%

Writing 10 files, 1MB each

Elastic Bursting Time difference
366.2ms 369.8ms -0.97%

Writing 10 files, 100MB each

Elastic Bursting Time difference
12.161s 17.081s -28.80%

Results breakdown

Elastic throughput seems to be completing the write operations faster in all of the benchmarks above, compared to Bursting throughput mode.

For simple sporadic file writes it seems like there is not much of a difference, but Elastic throughput really starts to show its benefits in larger file sizes. Writing 10 files of 100MB can easily save your app 5 seconds of waiting time; savings you can potentially propagate to your end users and improve user experience.

Long story short, I am definitely switching my existing EFS file systems to Elastic throughput mode after these results. The pricing is pretty much the same and there's nothing that stops me from doing the switch at this point.

Of course, don't take my word for it. Do your own due diligence and benchmarks before making a similar switch.

Considerations

  • The tests were done using an identical Lambda with EFS file system attached
  • The two Lambdas ran exactly the same code
  • The numbers above are adjusted to exclude potential side effects like Lambda cold starts, network latency and variability in any surrounding code inside the Lambda runtime. Timestamps are only snapshotted just before and right after the filesystem IO.
  • Tests are repeated 5 times with a sleep time of 10 seconds in between each run, to give plenty of time for both EFS throughput modes to pick up the pace and trigger any internal caching or warming mechanisms that EFS might have. The results of all 5 test are averaged to come up with the numbers in the benchmark.
  • Code used to benchmark is available in a GitHub repo

Conclusion

Hope you found this benchmark useful. Looking forward to read your findings in the comments below. You can also catch me at my AWS CDK blog, where you can learn more about corner cases like this or find interesting AWS CDK constructs you can use for your app infrastructure.

efs Article's
30 articles in total
Favicon
EC2 instances with pre-configured EFS (elastic file system ) using Terraform modules
Favicon
EFS for Centralized Shared Storage
Favicon
Installing Python Dependencies on AWS Lambda Using EFS
Favicon
Tip: Choosing EFS Over S3 for File Storage in AWS
Favicon
AWS Storage - Part 2: EFS and FSx
Favicon
Storage options for EKS: Comparing Amazon EFS, EBS, S3 and FSx for ONTAP
Favicon
[SAA-C03: Part 4] - Unlocking EC2 Storage: Mastering EBS, AMIs, and Beyond for Optimal Performance
Favicon
Elastic File Service
Favicon
Eclipse Che on AWS with EFS
Favicon
Eclipse Che on AWS with EFS
Favicon
30 days of AWS - Part 4: AWS Storage
Favicon
Optimizing Oracle Database Migration to Amazon RDS with EFS Integration
Favicon
Mount Up! A Step-by-Step Guide to Creating and Using Amazon EFS on Ubuntu
Favicon
Outgrowing Your File System? Meet AWS EFS
Favicon
Getting Started with AWS and Terraform: Multi-Attaching Elastic File System (EFS) Volumes to EC2 instances using Terraform
Favicon
Utilizando EFS para persistĂŞncia de arquivos do container ECS/Fargate
Favicon
[SAA] AWS EBS, EFS and EC2 insntace storage
Favicon
How to extend an EBS volume in AWS and then grow EFS Filesystem
Favicon
Amazon FSx: Empowering Your File Storage in the Cloud
Favicon
How to construct ECS service with EFS volume using CDK
Favicon
Create and mount an Amazon EFS file system (Amazon EFS) to an Amazon Elastic Compute Cloud (Amazon EC2) instance
Favicon
AWS EFS Elastic vs Burstable throughput (benchmark)
Favicon
AWS - Amazon File Cache
Favicon
Amazon Elastic File System
Favicon
EFS - Elastic File System
Favicon
How to access EFS folders from the Windows File Explorer using WSL2
Favicon
How to Solve AWS EFS “Operation Not Permitted” Errors in EKS
Favicon
Delete Old Backup/Logfiles/Temp files from EFS using Lambda, PowerShell & Event Bridge
Favicon
Introduction to AWS EFS
Favicon
AWS EFS (Elastic File Storage)

Featured ones: