3 ms·
I tried a bunch of different options and landed on multipass. I'm curious whether someone has found a good option for running x86 images on m1 chips. I'm gene
by xrd 3y ago
I tried a bunch of different options and landed on multipass.
I'm curious whether someone has found a good option for running x86 images on m1 chips.
I'm generally happy with the multipass VMs I'm creating but they are arm architecture so then if i use docker images inside them I'm limited to arm images. Maybe I just haven't explored how to run x86 correctly within multipass?
I'm finding that usually arm images are a step behind the x86 images if they are official, or they are built by someone outside the organization, so I'm never sure I'm using a safe image.
Do any of the options here make it performant to run x86 on apple silicon? Some interesting comments on Rosetta that I don't fully understand.
- joshcsimmons 3y agoI've had the best experience using Parallels. Not sure what exactly goes on under the hood but x86 performance on my M1 Mac is snappier than what I've experienced in VirtualBox (have never tried Multipass). Regardless, performance on my beefy M1 Max MacBook Pro is pitiful compared to running natively on an x86 system.
- xrd 3y agoYou pay for parallels, right? I always try to find something that's fully open so I'm able to control my destiny fully. That's a bit ironic trying to run on apple hardware, but if the entire stack above the bottom layer is open then I can easily switch hardware of course.
- greggsy 3y agoThat’s noble, but open source doesn’t always deliver the same benefits of COTS products, such as stability and support. That trumps ideology for many people and businesses.
- xrd 3y agoDefinitely true. But I also feel like open source stuff is more honest about the capabilities. That's important to me and often trumps the marketing effort by a commercial effort.
- greggsy 3y agoOn that thread, many vendors will implement features and capabilities through request or with with their customers, and often at their own expense if it increases their overall marketability. Sure, you could put in a request to the project maintainer, fork it - or find a contribution yourself - but there will still be zero guarantees and support arrangements will be shaky at best.
- jlnthws 3y agoThe key is to ensure your x86 code is run with Rosetta instead of being emulated (with qemu for instance). By upgrading to Ventura and using the latest Docker Desktop which allows Rosetta translation, I was able to run x86 containers 6 times faster than before. Last time I checked, Multipass had no options for Rosetta translation yet (it's planned though). Keep in mind Rosetta has a few limitations like it can't translate AVX instructions.
- eyberg 3y agoTranslating x86 -> arm or vice-versa is always going to be slow. No amount of software will ever overcome that. If you are using arm you really need to embrace it. Running x86 on arm is only a hack - whether it's apple or some random github - it will only ever be a hack. It is one thing to dev on arm and deploy to x86 but expecting x86 to perform remotely close to the same exp on arm isn't something that's going to happen. Having said that.. If you really want to run x86 images on arm, and while we're definitely not 1:1 with docker (and don't want to be) we're interested in people's experiences with https://ops.city https://ops.city as there is native hardware accelerated arm support and x86 on arm. (I'm with the company behind it.) It's definitely going to be more performant than a docker image since docker/k8s not only rely on a full blown linux but also abuse iptables, et al. It also has support for bridging (outside of the vm) and 9pfs so that would help alleviate your pain.