Cómo solucionar los cuellos de botella de recursos de Docker Desktop en MacBook
22 जून 2026
0
Computing/SoftwareComments (0)
Log in to leave a comment
No posts yet
Log in to leave a comment
No posts yet
Docker Desktop captura la mitad de la memoria física en el momento en que se ejecuta. Debido a un error en el framework de virtualización, la memoria no se recupera aunque se apaguen los contenedores. Una vez que el kernel de macOS comienza a realizar el intercambio en disco (swap), es imposible evitar el cuello de botella de E/S, incluso con Apple Silicon. El fenómeno del “Exit Code 137”, donde los contenedores mueren sin razón al ejecutar aplicaciones basadas en JVM, no se resuelve simplemente ajustando el tamaño del heap.
Calcule e introduzca manualmente los límites de memoria por servicio. El límite total se calcula con la siguiente fórmula:
Puede prevenir tiempos de inactividad de los servicios locales controlando las variables de entorno con el siguiente script:
sysctl -n hw.memsize..env, por ejemplo: BACKEND_MEM_LIMIT=1536M.La discrepancia de permisos entre APFS de macOS y los contenedores de Linux es una causa común de errores de compilación. Según los benchmarks de DDEV, al aplicar VirtioFS en lugar del gRPC FUSE tradicional y combinarlo con la sincronización de Mutagen en un entorno Colima, la velocidad de instalación de Drupal se reduce de 102 a 27 segundos, un 73% de mejora.
Para reducir los cuellos de botella de rendimiento, aplique la siguiente configuración:
sudo diskutil apfs changeOwnerSharing /Volumes/ExternalSSD-Dev enable.develop.watch.sync del archivo docker-compose.yml, excluya rutas pesadas como node_modules de la sincronización.--mount-inotify para alinear las señales de FSEvents con el kernel de Linux.Al finalizar esta configuración, la latencia que ocurre al modificar el código se recupera hasta alcanzar el 95% de la velocidad de un dispositivo físico.
Si combina varios tiempos de ejecución de virtualización, la ruta del socket de Docker se complica. Dado que el framework de contenedores de Apple configura los micro-VM de forma independiente, la gestión de la red es compleja.
Para evitar colisiones de puertos, utilice un script de auto-corrección de red:
lsof -i -P -n..env y ejecute el contenedor.Si se elimina el contenedor, los archivos de la base de datos también desaparecen. Asegúrese de enlazar el volumen a una ruta específica del disco físico, como /Volumes/ExternalSSD-Dev/DockerData/volumes/pg_data_core/.
Para obtener resiliencia en la recuperación de datos, siga estos pasos:
docker compose exec y comprímalo con gzip.gunzip -c.read en el script para forzar un paso de confirmación antes de ejecutar la recuperación.Al usar este método, puede volver a un estado normal en 5 segundos incluso si se introducen datos de prueba erróneos.