Forum

Docker na M1 Max - Straszna wydajność

C

Anioł Chaosu

Oryginalny plakat
29 września 2005 r.
Wielka Brytania
  • 3 listopada 2021
Wydajność platformy Docker dla komputerów Mac nadal jest okropna na M1. Czy ktoś wie, czy Docker planuje poprawić tę sytuację? Czy już używają frameworka Apple Hypervisor (zgaduję, że nie).

Na przykład mam prostą kompilację JAMstack (Jekyll), której ukończenie zajmuje około 70 sekund na moim Dell XPS 17 (Intel Core i9-11900H) przy użyciu obrazu x86. Tak jest w przypadku systemu Windows 11 (WSL2) lub Linux (Pop!_OS).

Ta sama kompilacja (z obrazem ARM64) zajmuje 460 sekund na M1 Max, z Dockerem przypisanym 8 rdzeni i 8 GB.

Jednakże, jeśli uruchomię Linuksa (Ubuntu Server ARM64) przez UTM, mogę wykonać dokładnie tę samą kompilację w zaledwie 9 sekund!!!

9 sekund to niesamowity wynik, ale to bolesne, że muszę uruchomić lokalny obraz Ubuntu, aby osiągnąć tę wydajność.

jakieś pomysły? Jakiś sposób na zoptymalizowanie wydajności Dockera w systemie macOS? U

ultrakio

12 kwi 2015


  • 3 listopada 2021
Sprawdź to Testy porównawcze programistów platformy M1 Max Docker
Reakcje:dgdosen C

Anioł Chaosu

Oryginalny plakat
29 września 2005 r.
Wielka Brytania
  • 3 listopada 2021
Dzięki za udostępnienie. Dobry film, chociaż doświadczenie prezenterów było trochę inne niż moje.

Zdecydowanie widzę poważne wąskie gardło w Dockerze dla Maca na M1.

Nie jestem pewien, czy odnosi się to do samego Dockera, który, jak sądzę, używa QEMU na Macu lub ograniczenia I/O oprogramowania.

Tak czy inaczej, trudno zignorować 9-sekundowy czas kompilacji (UTM — Linux) w porównaniu z 460-sekundowym czasem kompilacji (macOS)

Czy ktoś jeszcze używa Dockera na M1/Pro/Max?

czujny

Współpracownik
7 sierpnia 2007
Nashville, TN
  • 3 listopada 2021
ChaosAngel powiedział: Dzięki za udostępnienie. Dobry film, chociaż doświadczenie prezenterów było trochę inne niż moje.

Zdecydowanie widzę poważne wąskie gardło w Dockerze dla Maca na M1.

Nie jestem pewien, czy odnosi się to do samego Dockera, który, jak sądzę, używa QEMU na Macu lub ograniczenia I/O oprogramowania.

Tak czy inaczej, trudno zignorować 9-sekundowy czas kompilacji (UTM — Linux) w porównaniu z 460-sekundowym czasem kompilacji (macOS)

Czy ktoś jeszcze używa Dockera na M1/Pro/Max?
Nie wiem, ale prawdopodobnie niedługo będę, gdy mój M1 Max pojawi się dzisiaj i kiedy dotrę do tego punktu w moim laboratorium, aby z nim zadzierać.

Jestem całkiem nowy w platformach Docker i Kubernetes, ponieważ od kilku lat skupiam się głównie na wirtualizacji przedsiębiorstw i chmurze publicznej, więc spodziewam się, że będzie fajnie.

Zgadzam się z facetem w zamieszczonym filmie. Cieszę się, że się mylę, ale zarządzając programistami przez kilka lat, mogę powiedzieć, że narzędzia deweloperskie zwykle najwolniej dostosowują się do zmian w ekosystemie Apple. To znaczy, chyba że używasz Xcode. Od jakiegoś czasu nie szukałem, ale ostatnio, gdy patrzyłem, Visual Studio dla komputerów Mac wciąż nie jest jeszcze w pełnej wersji Beta, a minął rok.
Reakcje:Bloomberg C

Cykle węglowe

15 maja 2014 r.
  • 3 listopada 2021
VS Code for Mac przebył długą drogę i powoli staje się moim ulubionym... Jestem rozczarowany słysząc o wydajności Dockera na M1 Max C

Anioł Chaosu

Oryginalny plakat
29 września 2005 r.
Wielka Brytania
  • 3 listopada 2021
Spędziłem trochę czasu na dostrajaniu Dockera na Macu i poprawiłem wydajność.

Nie zdawałem sobie sprawy, że musisz włączyć korzystanie z platformy Apple Hypervisor (jest to w ramach funkcji eksperymentalnych). To znacznie poprawiło wydajność (460 sekund do 220 sekund). Jednak wciąż jest daleko od Dell XPS 17.

Zoptymalizowałem również swoje woluminy, ponieważ podejrzewam, że mój problem to w rzeczywistości I/O. Mam dość duże obciążenie plików (4000+ / 800MB). Krótko mówiąc, myślę, że to zabójca.

Mając to na uwadze, prawdopodobnie zachowam działanie Ubuntu w UTM, co zakończy kompilację w mniej niż 10 sekund. To naprawdę pokazuje moc M1 Max! Nigdy nie widziałem, żeby inna maszyna zakończyła proces tak szybko, w tym mój komputer stacjonarny Ryzen 3950 (16C/32T) z WSL2. DO

ADGrant

26 kwi 2018
  • 3 listopada 2021
ChaosAngel powiedział: Spędziłem trochę czasu na dostrajaniu Dockera na Macu i poprawiłem wydajność.

Nie zdawałem sobie sprawy, że musisz włączyć korzystanie z platformy Apple Hypervisor (jest to w ramach funkcji eksperymentalnych). To znacznie poprawiło wydajność (460 sekund do 220 sekund). Jednak wciąż jest daleko od Dell XPS 17.

Zoptymalizowałem również swoje woluminy, ponieważ podejrzewam, że mój problem to w rzeczywistości I/O. Mam dość duże obciążenie plików (4000+ / 800MB). Krótko mówiąc, myślę, że to zabójca.

Mając to na uwadze, prawdopodobnie zachowam działanie Ubuntu w UTM, co zakończy kompilację w mniej niż 10 sekund. To naprawdę pokazuje moc M1 Max! Nigdy nie widziałem, żeby inna maszyna zakończyła proces tak szybko, w tym mój komputer stacjonarny Ryzen 3950 (16C/32T) z WSL2.

Czy używałeś Dockera na komputerze Mac z procesorem Intel? Jeśli tak, jak to wygląda w porównaniu z twoimi doświadczeniami z komputerami Mac M1? C

Anioł Chaosu

Oryginalny plakat
29 września 2005 r.
Wielka Brytania
  • 4 listopada 2021
ADGrant powiedział: Czy używałeś Dockera na komputerze Mac z procesorem Intel? Jeśli tak, jak to wygląda w porównaniu z twoimi doświadczeniami z komputerami Mac M1?
Tak, używam Dockera na Macu od wielu lat.

Z oczywistych powodów wrażenia z korzystania z platformy Docker są znacznie lepsze na hoście z systemem Linux. Dlatego większość moich prac programistycznych w sieci Web wykonuję w systemie Pop!_OS. To powiedziawszy, po wydaniu WSL2 na Windows, doświadczenie Dockera znacznie się poprawiło (co czyni go realnym środowiskiem programistycznym dla mojego przepływu pracy).

Docker na macOS zawsze był uciążliwy (z mojego doświadczenia), zwłaszcza podczas pracy z zamontowanymi systemami plików. Zasadniczo obniża wydajność podczas pracy nad projektami z dużymi ilościami plików.

Jeśli chodzi o Intel vs. M1 na macOS, powiedziałbym, że doświadczenie zależy od konkretnego obciążenia, ale dla mnie jest dość równe (miałem i9 MBP 16 cali - 32 GB).

Jeśli jednak używasz Linuksa na Macu z UTM, możesz naprawdę uwolnić M1 Max. Na przykład mój Dell XPS 17 osiąga czas kompilacji około 70 sekund. Dzięki Ubuntu Server przez UTM, M1 Max osiąga ten sam wynik w zaledwie 9 sekund (co jest najszybszym, jaki kiedykolwiek widziałem). C

Anioł Chaosu

Oryginalny plakat
29 września 2005 r.
Wielka Brytania
  • 4 listopada 2021
Zdecydowałem się pozostać przy mojej konfiguracji UTM + Ubuntu Server (ARM64) na moim M1 Max MBP.

Po skonfigurowaniu protokołu SSH i wystarczającej ilości pamięci RAM wpływ lokalnego uruchamiania serwera jest dość niski.

Ta konfiguracja zaowocowała 9-sekundowym czasem kompilacji, co w porównaniu z 220 sekundami w Docker dla komputerów Mac jest dużym krokiem naprzód.

220 sekund nie brzmi jak długo, ale kiedy czekasz na ukończenie kompilacji wiele razy dziennie, wydaje się, że trwa to wieczność. DO

jabłkowy

27 listopada 2021
  • Sobota o 9:26
Utworzyłem konto, ponieważ wydajesz się idealną osobą do zadania tego pytania, biorąc pod uwagę, że jesteś aktywnym użytkownikiem platformy dokerowej i masz doświadczenie zarówno z 16-calowym MBP 2019, jak i nowymi modelami M1.

W ciągu najbliższych kilku miesięcy zamierzam uaktualnić z mojego 13-calowego MPB z 2018 roku. Posiada czterordzeniowy procesor i5, 16 GB pamięci RAM, 256 GB SSD. Regularnie używam Dockera do osobistych projektów z pełnym stosem. W danym dniu mógłbym robić wszystko, od zadokowanych mikroserwisów backendowych po frontendowe systemy IOS/Android, a ostatnio mój laptop wydaje się strasznie powolny, zwłaszcza gdy jest podłączony do dwóch monitorów 1440p...

Zawsze kupowałem używanego Macbooka od kilku modeli temu w serwisie eBay, aby zaoszczędzić trochę gotówki. Wygląda jednak na to, że te nowe modele M1 zapewniają atrakcyjną opcję, aby po prostu wydać więcej pieniędzy. Znalazłem kilka używanych 16-calowych macbooków z 2019 roku z dyskiem i9 i 32 GB pamięci RAM 1 TB SSD za około 1900 USD.

Czy uważasz, że jest to lepsza opcja niż podobnie skonfigurowany M1 Pro z 32 GB pamięci RAM 1 TB SSD za blisko 3000 USD? Mając na uwadze przypadek użycia programistów, czy uważasz, że dodatkowy koszt jest wart zachodu? W

gwar

2 grudnia 2008
  • Sobota o 10:19
Jest tutaj bardzo długi, szczegółowy artykuł wyjaśniający, dlaczego Docker dla komputerów Mac jest tak powolny i jakie są dostępne opcje:

Pobijanie wydajności w Dockerze dla komputerów Mac

Używanie Dockera na Macu w 2020 roku jest porównywalne z posiadaniem Peugeota 1007 z 2009 roku w 2020 roku. Wiedziałbym, że mam oba. medium.com
Reakcje:Xiao_Xi i michalm g

gernot.kogler

13 listopada 2014
  • Sobota o 13:04
Przeszedłem z Docker Desktop na Limonka podczas konfigurowania mojego nowego M1Max. Jak dotąd działa jak urok.
Reakcje:Xiao_Xi DO

ADGrant

26 kwi 2018
  • Sobota o 14:12
ChaosAngel powiedział: Zdecydowałem się pozostać przy mojej konfiguracji UTM + Ubuntu Server (ARM64) na moim M1 Max MBP.

Po skonfigurowaniu protokołu SSH i wystarczającej ilości pamięci RAM wpływ lokalnego uruchamiania serwera jest dość niski.

Ta konfiguracja zaowocowała 9-sekundowym czasem kompilacji, co w porównaniu z 220 sekundami w Docker dla komputerów Mac jest dużym krokiem naprzód.

220 sekund nie brzmi jak długo, ale kiedy czekasz na ukończenie kompilacji wiele razy dziennie, wydaje się, że trwa to wieczność.
Czy próbowałeś używać Ubuntu Multipass do uruchamiania Ubuntu Server na komputerze Mac? Wydaje się prostsze niż UTM, ale oczywiście ogranicza się do wirtualizacji Ubuntu. x

Xiao_Xi

27 paź 2021
  • Sobota o 14:51
gernot.kogler powiedział: przełączyłem się z Docker Desktop na Limonka podczas konfigurowania mojego nowego M1Max. Jak dotąd działa jak urok.
Dlaczego Lima a nie podman? Jaka jest przewaga Limy nad podmanem? TEN

leman

14 paź 2008
  • Sobota o 15:40
wyrdness powiedział: Jest tutaj bardzo długi, szczegółowy artykuł wyjaśniający, dlaczego Docker dla komputerów Mac jest tak powolny i jakie masz opcje:

Pobijanie wydajności w Dockerze dla komputerów Mac

Używanie Dockera na Macu w 2020 roku jest porównywalne z posiadaniem Peugeota 1007 z 2009 roku w 2020 roku. Wiedziałbym, że mam oba. medium.com

Jeśli dobrze zrozumiałem, podsumowanie jest takie, że Docker wydaje się strasznie zepsuć swoją wersję na Maca. g

gernot.kogler

13 listopada 2014
  • Sobota o 22:11
Xiao_Xi powiedział: Dlaczego Lima, a nie podman? Jaka jest przewaga Limy nad podmanem?
Nie wiem Natknąłem się na wpis na blogu opisujący, jak zastąpić pulpit dockera lima /nerdclt. Wypróbowałem to i zadziałało po wyjęciu z pudełka jako zamiennik dla dockera, znacznie szybciej i stabilniej. Co bym zyskał przechodząc na podmana? x

Xiao_Xi

27 paź 2021
  • Niedziela o 6:27 AM
gernot.kogler powiedział: Co bym zyskał przechodząc na podmana?
Ten artykuł zawiera porównanie między nerdctl i podmanem. https://codeengineered.com/blog/2021/podman-vs-nerdctl/

Wygląda na to, że podman ma lepszą kompatybilność z Dockerem niż lima. Możesz uruchomić podmana, ponieważ był to docker z aliasem docker=podman.

Poza tym Red Hat rozwija podmana, więc może mieć lepsze wsparcie niż lima. Ostatnio edytowane: niedziela o 6:34

dgdosen

13 grudnia 2003 r.
Seattle
  • Niedziela o 16:30
ChaosAngel powiedział: Wydajność platformy Docker dla komputerów Mac nadal jest okropna na M1. Czy ktoś wie, czy Docker planuje poprawić tę sytuację? Czy już używają frameworka Apple Hypervisor (zgaduję, że nie).

Na przykład mam prostą kompilację JAMstack (Jekyll), której ukończenie zajmuje około 70 sekund na moim Dell XPS 17 (Intel Core i9-11900H) przy użyciu obrazu x86. Tak jest w przypadku systemu Windows 11 (WSL2) lub Linux (Pop!_OS).

Ta sama kompilacja (z obrazem ARM64) zajmuje 460 sekund na M1 Max, z Dockerem przypisanym 8 rdzeni i 8 GB.

Jednakże, jeśli uruchomię Linuksa (Ubuntu Server ARM64) przez UTM, mogę wykonać dokładnie tę samą kompilację w zaledwie 9 sekund!!!

9 sekund to niesamowity wynik, ale to bolesne, że muszę uruchomić lokalny obraz Ubuntu, aby osiągnąć tę wydajność.

jakieś pomysły? Jakiś sposób na zoptymalizowanie wydajności Dockera w systemie macOS?

Zastanawia mnie to:

- Powyżej znajduje się film, który wydaje się pokazywać, na czym polegają wrażenia programistów z natywnym Dockerem M1/M1Pro/M1Max: . Wydaje się to całkiem rozsądne i odzwierciedla moje uczucia - chociaż sam niczego nie porównałem.
- Wygląda na to, że możesz zainstalować Intel Docker Desktop na M1 przez Rosetta. Mam nadzieję, że tego nie robisz...
- Uruchomienie Dockera na M1 zmusi Cię do zarządzania architekturą podstawowych obrazów. Czy używasz obrazów arm64? od x86_64 do Rosetty? wieloarchowy?
- 8 rdzeni? jak złożony jest twój stack? Moim celem jest zapewnienie minimalnych zasobów do pracy kontenerów i debugowania lokalnie (środowisko deweloperskie), a następnie przekazanie ich na serwer w celu dalszych testów. Ostatnio edytowane: niedziela o 16:51

dgdosen

13 grudnia 2003 r.
Seattle
  • Niedziela o 16:33
wyrdness powiedział: Jest tutaj bardzo długi, szczegółowy artykuł wyjaśniający, dlaczego Docker dla komputerów Mac jest tak powolny i jakie masz opcje:

Pobijanie wydajności w Dockerze dla komputerów Mac

Używanie Dockera na Macu w 2020 roku jest porównywalne z posiadaniem Peugeota 1007 z 2009 roku w 2020 roku. Wiedziałbym, że mam oba. medium.com
FYI — ten artykuł został napisany, zanim Apple wypuściło komputery Mac M1 i logicznie, zanim Docker (Docker Desktop) natywnie obsługiwał Apple Silicon.

thedocbwarren

10 listopada 2017 r.
San Francisco, Kalifornia
  • Niedziela o 16:44
dgdosen powiedział: FYI – ten artykuł został napisany, zanim Apple wypuściło komputery Mac M1 i logicznie, zanim Docker (Docker Desktop) natywnie obsługiwał Apple Silicon.
Używam dokera codziennie na moim M1. Co dokładnie jest w tym powolne? A jak to jest testowane? (mówiąc ogólnie o Docker na Macu.)

dgdosen

13 grudnia 2003 r.
Seattle
  • Niedziela o 16:47
thedocbwarren powiedział: Codziennie używam Dockera na moim M1. Co dokładnie jest w tym powolne? A jak to jest testowane? (mówiąc ogólnie o Docker na Macu.)
Nie jestem tym, który mówi, że jest wolny... DO

ADGrant

26 kwi 2018
  • Niedziela o 17:25
dgdosen powiedział: FYI – ten artykuł został napisany, zanim Apple wypuściło komputery Mac M1 i logicznie, zanim Docker (Docker Desktop) natywnie obsługiwał Apple Silicon.
Autor używał Intel Mac i narzekał na wydajność Docker for Mac na Intelu.

thedocbwarren

10 listopada 2017 r.
San Francisco, Kalifornia
  • Niedziela o 19:45
dgdosen powiedział: to nie ja mówię, że to jest wolne...
Och wiem, przepraszam nie było skierowane do właściwej osoby. Pomogłem tu i tam, aby uzyskać wsparcie Apple'a przez różne narzędzia (docker jest jednym z nich) i chcę go trochę lepiej zrozumieć. Poza tym nie doświadczyłem tego problemu. x

Xiao_Xi

27 paź 2021
  • Niedziela o 21:36
Czy platforma Docker będzie nadal aktualna po tym, jak Kubernetes porzuci obsługę platformy Docker? g

gernot.kogler

13 listopada 2014
  • Niedziela o 22:50
Xiao_Xi powiedział: Ten artykuł zawiera porównanie między nerdctl i podmanem. https://codeengineered.com/blog/2021/podman-vs-nerdctl/

Wygląda na to, że podman ma lepszą kompatybilność z Dockerem niż lima. Możesz uruchomić podmana, ponieważ był to docker z aliasem docker=podman.

Poza tym Red Hat rozwija podmana, więc może mieć lepsze wsparcie niż lima.
Dzięki za link. Próbowałem podmana, ale lima / nerdctl działa lepiej dla mnie. Potrzebuję tylko narzędzia do uruchamiania plików docker-compose. podman nie może tego zrobić po wyjęciu z pudełka i po zainstalowaniu podman-compose nie wywołał go poprawnie (plik docker-compose zawiera postgres, teedy i nginx jako reverse proxy). lima / nerdctl po prostu działa. Fajnie mieć wybór, ale będę obserwował co się dzieje z podmanem...

Przy okazji Docker Desktop (oczywiście natywny dla arm64) uruchamiał moje docker-compose za każdym razem. Co najmniej przez połowę czasu po prostu utknął w środku bagażnika, a gdy pomyślnie się uruchomił, zajęło to wieczność w porównaniu z lima / nerdctl.
Reakcje:Xiao_Xi