Use local SSD to improve IOPs for GitLab runners on macOS
We want to move to local SSD usage to improve macOS runner IOPs.
Context
Discussion on slow EBS for macOS runners on AWS.
Following this discussion from @ajwalker
EBS volumes are super slow.
Our image's capacity (which isn't all free, as some is consumed by the OS itself) is like 80-100 GB. The MacOS internal SSD, which would provide much better performance, is 228 GB. We can only ever run 2 VMs per host, so technically, we could divide the internal SSD capacity between the two VMs and we'd have better performance.
We can't put the template images on the internal SSD, because there isn't capacity. What's kind of crazy about all of this, is that we're only really using the EBS volume to store the template VMs because we figured it would be faster. We're also doing this because it's effectively how Tart likes to operate.
A MacOS image compressed to about 13GB. Pulling that from S3 and extracting it directly to the internal SSD only takes 1 minute. I think we could improve on this.
- It's faster to copy the image from S3 directly to the internal SSD than it is to copy from the EBS volume.
- We can more easily store far more images on S3, without EBS volumes increasing in size and us having to pay for that for each and every instance we have in the ASG.
- The performance of the image on the internal SSD should be way better than what we're experiencing here.