wardenenv / warden

Warden is a CLI utility for orchestrating Docker based developer environments
https://warden.dev
MIT License
402 stars 167 forks source link

Orbstack slow with Mutagen #718

Open lewisvoncken opened 10 months ago

lewisvoncken commented 10 months ago

Version of Warden

0.14.1

Operating System and Installation Method

MacOS Sonoma 14.0

Image

mutagen

Describe the Bug

Combining Warden with Orbstack can be faster without Mutagen enabled.

To Reproduce

No response

Expected Behavior

No response

Additional context

https://github.com/orbstack/orbstack/issues/430

bap14 commented 10 months ago

I haven't seen any sluggish performance using Mutagen. I'd like to see some performance stats showing the difference between Orbstack bind mounts versus Mutagen sync. Not saying I don't believe them, but there are multiple reasons why performance could be an issue with Mutagen (e.g. anti-virus).

@navarr A good QOL update would be to have a flag for projects to disable it. Something like:

if [[ $OSTYPE =~ ^darwin && ${WARDEN_MUTAGEN:-1} -eq 1 ]]; then
lewisvoncken commented 10 months ago

@bap14

Mutagen is also stuck on 'Scanning Files' on a MacBook m1 chip

I disabled Mutagen completely which solved the issue.

I use it combined with Magento 2 Environment type.

Disable Mutagen and use default volumne mount

rm environments/magento2/magento2.darwin.yml

commands/env.cmd

#if [[ $OSTYPE =~ ^darwin ]]; then
#    export MUTAGEN_SYNC_FILE="${WARDEN_DIR}/environments/${WARDEN_ENV_TYPE}/${WARDEN_ENV_TYPE}.mutagen.yml"

#    if [[ -f "${WARDEN_HOME_DIR}/environments/${WARDEN_ENV_TYPE}/${WARDEN_ENV_TYPE}.mutagen.yml" ]]; then
#        export MUTAGEN_SYNC_FILE="${WARDEN_HOME_DIR}/environments/${WARDEN_ENV_TYPE}/${WARDEN_ENV_TYPE}.mutagen.yml"
#    fi

#    if [[ -f "${WARDEN_ENV_PATH}/.warden/environments/${WARDEN_ENV_TYPE}/${WARDEN_ENV_TYPE}.mutagen.yml" ]]; then
#        export MUTAGEN_SYNC_FILE="${WARDEN_ENV_PATH}/.warden/environments/${WARDEN_ENV_TYPE}/${WARDEN_ENV_TYPE}.mutagen.yml"
#    fi

#    if [[ -f "${WARDEN_ENV_PATH}/.warden/mutagen.yml" ]]; then
#        export MUTAGEN_SYNC_FILE="${WARDEN_ENV_PATH}/.warden/mutagen.yml"
#    fi
#fi
MagePsycho commented 8 months ago

@lewisvoncken I am also having a performance issue because of mutagen.

Disable Mutagen and use default volumne mount

Can you please elaborate on how you are syncing in such case?

lewisvoncken commented 7 months ago

@MagePsycho @navarr

Here is a pull request

https://github.com/wardenenv/warden/pull/747

bap14 commented 7 months ago

@lewisvoncken I left a comment on the PR, but the approach in the PR is the wrong approach. It forces everyone to use a bind mount even if they're not using OrbStack. The more appropriate approach would be to make Mutagen an optional service like Elasticsearch or Blackfire so those running OrbStack can disable Mutagen while those running Docker Desktop can run Mutagen.

Cc. @navarr

joseluisi4 commented 6 months ago

I have created a PR to make the use of Mutagen optional in the Warden configuration .env: https://github.com/wardenenv/warden/pull/749

Cc. @navarr @bap14 @lewisvoncken

bap14 commented 6 months ago

@joseluisi4 I added a couple comments.

duikb00t commented 5 months ago

I have the same issue, for example when I change a composer.json file on my own filesystem and I access the container, I notice that both files are not the same. Running mutagen start/stop doesn't help.

Connecting traefik to clo_default network
Connecting tunnel to clo_default network
Connecting mailhog to clo_default network
[+] Running 10/10
 ✔ Container clo-elasticsearch-hq-1                                                                                                                                Started                                                                                    13.3s 
 ✔ Container clo-elasticsearch-1                                                                                                                                   Started                                                                                    13.4s 
 ✔ Container clo-redis-1                                                                                                                                           Started                                                                                    13.2s 
 ✔ Container clo-rabbitmq-1                                                                                                                                        Started                                                                                    13.3s 
 ✔ Container clo-db-1                                                                                                                                              Started                                                                                    13.3s 
 ! elasticsearch-hq The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested                                                                                             0.0s 
 ✔ Container clo-php-fpm-1                                                                                                                                         Started                                                                                    11.6s 
 ✔ Container clo-php-debug-1                                                                                                                                       Started                                                                                    11.3s 
 ✔ Container clo-nginx-1                                                                                                                                           Started                                                                                    11.2s 
 ✔ Container clo-varnish-1                                                                                                                                         Started                                                                                    11.0s 
Created session sync_sxwmLFn5e3FyAANlzzk7STcsMliWV7hsNVN1zWfSFqM                
Waiting for initial synchronization to complete
...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

This takes a very very long time.