[LR] Docker lokalnie działa wolno |
[LR] Docker lokalnie działa wolno |
4.12.2017, 17:20:33
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) |
Mam problem z wydajnością dockera na komputerze lokalnym. Docker odpalony na natywnej wirtualnej maszynie (Windows 10 Professional).
Generalnie ta sama aplikacja działa wolniej niż na przeciętnym dedyku, wydawałoby się, że lokalnie odpada sieć więc powinno to działać szybciej. Ogólne działanie pół biedy ale gdy dłużej nic nie robię i odświeżam stronę to potrafi czasem 10 sekund mielić, słyszę wtedy że komputer pracuje. W Debugbar: Booting (3.96s) Application (3.54s) ale to szczerze mi mało mówi :/ Gdzie szukać przyczyny? Gdzieś znajdę jakieś logi (log nginx, który widzę live działa też z tym lagiem więc nic mi nie mówi). Mam wrażenie, że chodzi coraz ciężej (więcej kodu) ale żeby aż tak? Mam dość dobry procesor, a dysk na PCI Express x4 3 więc szybszy niż standardowy SSD.. Równolegle działający phpmyadmin śmiga aż miło. Nie sądzę aby to była wina Windowsa zwłaszcza, że ktoś ma podobny problem z jabłku: https://github.com/laradock/laradock/issues/1227 -------------------- |
|
|
4.12.2017, 17:29:12
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 440 Pomógł: 6290 Dołączył: 27.12.2004 |
Tak z czystej ciekawosci: ty odpalasz te wszystkie kontenery jakie sa domyslnie w laradoc?
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
4.12.2017, 18:07:11
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) |
Kontenery odpalam 4 (workspace, nginx, mysql, php) + 1 phpmyadmin opcjonalnie.
Konfiguracja tego co odpalam: Kod ############################
# General Setup ############################ ### Application Path # Point to your application code, will be available at `/var/www`. APPLICATION=../ ### Data Path: # For all storage systems. DATA_SAVE_PATH=~/.laradock/data ### PHP version # Applies to the Workspace and PHP-FPM containers (Does not apply to HHVM) # Accepted values: 71 - 70 - 56 PHP_VERSION=71 ### PHP interpreter # Accepted values: hhvm - php-fpm PHP_INTERPRETER=php-fpm ############################ # Containers Customization ############################ ### WORKSPACE ################################################################################ ########################## WORKSPACE_INSTALL_XDEBUG=false WORKSPACE_INSTALL_LDAP=false WORKSPACE_INSTALL_SOAP=true WORKSPACE_INSTALL_MONGO=false WORKSPACE_INSTALL_PHPREDIS=false WORKSPACE_INSTALL_MSSQL=false WORKSPACE_INSTALL_NODE=false WORKSPACE_INSTALL_YARN=false WORKSPACE_INSTALL_DRUSH=false WORKSPACE_INSTALL_DRUPAL_CONSOLE=false WORKSPACE_INSTALL_AEROSPIKE=false WORKSPACE_INSTALL_V8JS=false WORKSPACE_COMPOSER_GLOBAL_INSTALL=false WORKSPACE_INSTALL_WORKSPACE_SSH=false WORKSPACE_INSTALL_LARAVEL_ENVOY=false WORKSPACE_INSTALL_LARAVEL_INSTALLER=false WORKSPACE_INSTALL_DEPLOYER=false WORKSPACE_INSTALL_LINUXBREW=false WORKSPACE_INSTALL_MC=false WORKSPACE_INSTALL_SYMFONY=false WORKSPACE_INSTALL_PYTHON=false WORKSPACE_INSTALL_IMAGE_OPTIMIZERS=false WORKSPACE_INSTALL_IMAGEMAGICK=false WORKSPACE_INSTALL_TERRAFORM=false WORKSPACE_INSTALL_DUSK_DEPS=false WORKSPACE_PUID=1000 WORKSPACE_PGID=1000 WORKSPACE_CHROME_DRIVER_VERSION=2.32 WORKSPACE_NODE_VERSION=stable WORKSPACE_YARN_VERSION=latest WORKSPACE_TIMEZONE=UTC WORKSPACE_SSH_PORT=2222 ### PHP_FPM ################################################################################ ############################ PHP_FPM_INSTALL_XDEBUG=false PHP_FPM_INSTALL_MONGO=false PHP_FPM_INSTALL_MSSQL=false PHP_FPM_INSTALL_SOAP=true PHP_FPM_INSTALL_ZIP_ARCHIVE=true PHP_FPM_INSTALL_BCMATH=false PHP_FPM_INSTALL_PHPREDIS=false PHP_FPM_INSTALL_MEMCACHED=false PHP_FPM_INSTALL_OPCACHE=false PHP_FPM_INSTALL_EXIF=false PHP_FPM_INSTALL_AEROSPIKE=false PHP_FPM_INSTALL_MYSQLI=false PHP_FPM_INSTALL_TOKENIZER=false PHP_FPM_INSTALL_INTL=false PHP_FPM_INSTALL_GHOSTSCRIPT=false PHP_FPM_INSTALL_LDAP=false PHP_FPM_INSTALL_SWOOLE=false PHP_FPM_INSTALL_IMAGE_OPTIMIZERS=false PHP_FPM_INSTALL_IMAGEMAGICK=true ### NGINX ################################################################################ ############################## NGINX_HOST_HTTP_PORT=80 NGINX_HOST_HTTPS_PORT=443 NGINX_HOST_LOG_PATH=./logs/nginx/ NGINX_SITES_PATH=./nginx/sites/ NGINX_PHP_UPSTREAM_CONTAINER=php-fpm NGINX_PHP_UPSTREAM_PORT=9000 ### APACHE ################################################################################ ############################# APACHE_HOST_HTTP_PORT=80 APACHE_HOST_HTTPS_PORT=443 APACHE_HOST_LOG_PATH=./logs/apache2 APACHE_SITES_PATH=./apache2/sites APACHE_PHP_UPSTREAM_CONTAINER=php-fpm APACHE_PHP_UPSTREAM_PORT=9000 APACHE_PHP_UPSTREAM_TIMEOUT=60 ### MYSQL ################################################################################ ############################## MYSQL_VERSION=8.0 MYSQL_DATABASE=default MYSQL_USER=default MYSQL_PASSWORD=secret MYSQL_PORT=3306 MYSQL_ROOT_PASSWORD=root MYSQL_ENTRYPOINT_INITDB=./mysql/docker-entrypoint-initdb.d ### REDIS ################################################################################ ############################## REDIS_PORT=6379 ### Percona ################################################################################ ############################ PERCONA_DATABASE=homestead PERCONA_USER=homestead PERCONA_PASSWORD=secret PERCONA_PORT=3306 PERCONA_ROOT_PASSWORD=root PERCONA_ENTRYPOINT_INITDB=./percona/docker-entrypoint-initdb.d ### MSSQL ################################################################################ ############################## MSSQL_DATABASE=homestead MSSQL_PASSWORD=yourStrong(!)Password MSSQL_PORT=1433 ### MARIADB ################################################################################ ############################ MARIADB_DATABASE=default MARIADB_USER=default MARIADB_PASSWORD=secret MARIADB_PORT=3306 MARIADB_ROOT_PASSWORD=root MARIADB_ENTRYPOINT_INITDB=./mariadb/docker-entrypoint-initdb.d ### POSTGRES ################################################################################ ########################### POSTGRES_DB=default POSTGRES_USER=default POSTGRES_PASSWORD=secret POSTGRES_PORT=5432 ### RABBITMQ ################################################################################ ########################### RABBITMQ_NODE_HOST_PORT=5672 RABBITMQ_MANAGEMENT_HTTP_HOST_PORT=15672 RABBITMQ_MANAGEMENT_HTTPS_HOST_PORT=15671 RABBITMQ_DEFAULT_USER=guest RABBITMQ_DEFAULT_PASS=guest ### ELASTICSEARCH ################################################################################ ###################### ELASTICSEARCH_HOST_HTTP_PORT=9200 ELASTICSEARCH_HOST_TRANSPORT_PORT=9300 ### KIBANA ################################################################################ ############################# KIBANA_HTTP_PORT=5601 ### MEMCACHED ################################################################################ ########################## MEMCACHED_HOST_PORT=11211 ### BEANSTALKD CONSOLE ################################################################################ ################# BEANSTALKD_CONSOLE_BUILD_PATH=./beanstalkd-console BEANSTALKD_CONSOLE_CONTAINER_NAME=beanstalkd-console BEANSTALKD_CONSOLE_HOST_PORT=2080 ### BEANSTALKD ################################################################################ ######################### BEANSTALKD_HOST_PORT=11300 ### SELENIUM ################################################################################ ########################### SELENIUM_PORT=4444 ### MINIO ################################################################################ ############################## MINIO_PORT=9000 ### ADMINER ################################################################################ ############################ ADM_PORT=8080 ADM_INSTALL_MSSQL=false ### PHP MY ADMIN ################################################################################ ####################### # Accepted values: mariadb - mysql PMA_DB_ENGINE=mysql # Credentials/Port: PMA_USER=default PMA_PASSWORD=secret PMA_ROOT_PASSWORD=secret PMA_PORT=8080 ### MAILDEV ################################################################################ ############################ MAILDEV_HTTP_PORT=1080 MAILDEV_SMTP_PORT=25 ### VARNISH ################################################################################ ############################ VARNISH_CONFIG=/etc/varnish/default.vcl VARNISH_PORT=8080 VARNISH_BACKEND_PORT=8888 VARNISHD_PARAMS=-p default_ttl=3600 -p default_grace=3600 ### Varnish ################################################################################ ############################ # Proxy 1 VARNISH_PROXY1_CACHE_SIZE=128m VARNISH_PROXY1_BACKEND_HOST=workspace VARNISH_PROXY1_SERVER=SERVER1 # Proxy 2 VARNISH_PROXY2_CACHE_SIZE=128m VARNISH_PROXY2_BACKEND_HOST=workspace VARNISH_PROXY2_SERVER=SERVER2 ### HAPROXY ################################################################################ ############################ HAPROXY_HOST_HTTP_PORT=8085 ### JENKINS ################################################################################ ############################ JENKINS_HOST_HTTP_PORT=8090 JENKINS_HOST_SLAVE_AGENT_PORT=50000 JENKINS_HOME=./jenkins/jenkins_home ### BLACKFIRE ################################################################################ ########################## # Create an account on blackfire.io. Don't enable blackfire and xDebug at the same time. # visit https://blackfire.io/docs/24-days/06-installation#install-probe-debian for more info. INSTALL_BLACKFIRE=false BLACKFIRE_CLIENT_ID=<client_id> BLACKFIRE_CLIENT_TOKEN=<client_token> BLACKFIRE_SERVER_ID=<server_id> BLACKFIRE_SERVER_TOKEN=<server_token> ### AEROSPIKE ################################################################################ ########################## AEROSPIKE_SERVICE_PORT=3000 AEROSPIKE_FABRIC_PORT=3001 AEROSPIKE_HEARTBEAT_PORT=3002 AEROSPIKE_INFO_PORT=3003 ### RETHINKDB ################################################################################ ########################## RETHINKDB_PORT=8090 ### MONGODB ################################################################################ ############################ MONGODB_PORT=27017 ### CADDY ################################################################################ ############################## CADDY_HOST_HTTP_PORT=80 CADDY_HOST_HTTPS_PORT=443 CADDY_HOST_LOG_PATH=./logs/caddy CADDY_CUSTOM_CADDYFILE=./caddy/Caddyfile ### LARAVEL ECHO SERVER ################################################################################ ################ LARAVEL_ECHO_SERVER_PORT=6001 ### DOCKER-SYNC ################################################################################ ################ # osx: 'native_osx' (default) # windows: 'unison' # linux: docker-sync not required DOCKER_SYNC_STRATEGY=native_osx ##### TO BE CONTINUE ................................. # ......... Missing: neo4j mongo rethinkdb redis aerospike pgadmin... # ......... # ......... ############################ # Miscellaneous ############################ # Replace with your Docker Host IP (will be appended to /etc/hosts) DOCKER_HOST_IP=10.0.75.1 # The Remote Interpreter entry matching name `laradock` PHP_IDE_CONFIG=serverName=laradock # Fix for windows users to make sure the application path works. COMPOSE_CONVERT_WINDOWS_PATHS=1 -------------------- |
|
|
4.12.2017, 19:29:08
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%) |
Docker na maku czy windowsie działa w wirtualce, więc masz NFS pomiędzy wirtualką a twoim dyskiem, kto kiedyś w vagrancie robił volumeny to wie że jest to bardzo wolne. Dodatkowo zależy co masz namyśli "lokalna maszyna". Jeżeli mówisz o laptopie, to nie, dedyk będzie znacznie lepszy niż niskonapięciowe CPU.
Nie mniej, bardzo często w takiej konfiguracji mysql czy inne bazy po prostu muszą swoje cache rozruszać. Na start nigdy tam nie ma cache, ono zawsze się tworzy pasywnie. Więc wystarczy że poużywasz i powinno się rozruszać. Nie mniej, nie polecam takich kobył używać produkcyjnie, bo to jest drobny żart taki zlepek. |
|
|
4.12.2017, 19:50:35
Post
#5
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
@by_ikar w Win 10 od wersji Professional Docker odpala się natywnie już i tak też ma odpalony @markonix
|
|
|
4.12.2017, 21:16:43
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%) |
Natywnie to działa to tylko na linuxie. Na Windowsie to leci po SMB, z prędkością rzędu 20MB/s i bóg wie jakimi opóźnieniami. Podobnie jest na makach, leci to po jakimś "osxfs" co działa na podobnej zasadzie jak NFS czy SMB, czyli lecą poliki po sieci. Już sam czas dostępu przy języku interpretowany, gdzie każdy jeden plik, z setek istniejących, musi zostać pobrany i zinterpretowany, wystarczy żeby aplikacja muliła jak cholera.
Nie działa to natywnie, wciąż działa to w wirtualnych maszynach, z różnymi systemami plików, których system hosta w ogóle nie rozumie. Natywnie na windowsie może działać kiedy odpalasz kontenery zrobione pod windowsa. Kiedy odpalasz linuxowe kontenery na windowsie, odpala się wirtualka i zaczynają się problemy. Osobiście staram się jak najmniej rzeczy montować jako wolumen, np zamiast całego katalogu projektu, rezultaty są całkiem zadowalające, aczkolwiek bardzo im daleko do tego jak to działa natywnie na linuksie.. Ten post edytował by_ikar 4.12.2017, 21:18:45 |
|
|
4.12.2017, 21:32:56
Post
#7
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
No tak, trochę przekoloryzowałem z tym natywnie Chodzi o to że nie wymagany już jest virtualBox który zwalniał prze swoje montowania FS
|
|
|
5.12.2017, 02:24:13
Post
#8
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) |
Tak, przez natywność rozumiem Hyper-V, który jest też formą wirtualizacji tyle, że dostępną od razu w Win 10.
Nie laptop, komputer stacjonarny. Głównie mnie ciekawi ten objaw opóźnienia, który jest proporcjonalny do przerwy, maksymalnie dochodzi do 10 sekund. Na razie czym idę dalej tym jest gorzej więc wątpię aby to się samo rozwiązało. Jak nie ma jakichś ciekawych rozwiązań dla Laradock'a to będę próbował jeszcze na próbę spróbować jakiś inny, czysty obraz z samą podstawą bo jestem ciekaw czy to problem z samym Laradockiem, Dockerem na Win czy czymś innym. -------------------- |
|
|
5.12.2017, 07:27:28
Post
#9
|
|
Grupa: Moderatorzy Postów: 2 921 Pomógł: 269 Dołączył: 11.08.2005 Skąd: 127.0.0.1 |
Cytat Nie sądzę aby to była wina Windowsa zwłaszcza, że ktoś ma podobny problem z jabłku: To nie jest wina Windowsa, tylko Dockera. Działa on natywnie tylko na Linuksie, pozostałe systemy muszą w jakiś sposób "wirutalizować" środowisko, w którym pracują. Najgorzej jest, gdy korzysta się z volumes. Znalazłem trzy rozwiązania problemu, z których przetestowałem dwa. Oba działają raczej średnio. Aktualnie przymierzam się do skorzystania z docker machine i kontenerów postawionych na virtual boksie. P.S. W grudniu wychodzi nowa wersja aplikacji na maca (i prawdopodobnie na windowsa). Może udało im się naprawić problem wydajności. -------------------- I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features. |
|
|
5.12.2017, 11:52:43
Post
#10
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) |
A tak odchodząc minimalnie od tematu, jak zaktualizować takiego Laradock'a (i inne analogiczne) gdy on nie jest dodany do composera, tylko jako git submodule.
Czy po prostu ściągnąć zmiany manualnie z repo? Potem co odpalić aby zaktualizować kontenery? Jak tak oglądam pliki to wydaje mi się, że nie powinno nic wylecieć przy takim pullu bo chyba wszystko co istotne trzyma poza katalogiem projektu, ale są też foldery z plikami zmiennymi (chociażby logami) i to wyleci. Ten post edytował markonix 5.12.2017, 11:54:13 -------------------- |
|
|
5.12.2017, 12:38:16
Post
#11
|
|
Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%) |
No tak, trochę przekoloryzowałem z tym natywnie Chodzi o to że nie wymagany już jest virtualBox który zwalniał prze swoje montowania FS Tak, ale wciąż są dwa różne systemy plików, z dwiema różnymi cechami (uprawnienia, przestrzenie, symlinki, ioevents etc), takie połączenie między dwoma systemami musi zapewne lecieć po jakiejś wewnętrznej sieci (SMB), problemem nie są tyle co duże pliki, co dużo małych plików. Dlatego czasy odczytów są fatalne. I zawsze będą. Tak, przez natywność rozumiem Hyper-V, który jest też formą wirtualizacji tyle, że dostępną od razu w Win 10. Nie laptop, komputer stacjonarny. Głównie mnie ciekawi ten objaw opóźnienia, który jest proporcjonalny do przerwy, maksymalnie dochodzi do 10 sekund. Na razie czym idę dalej tym jest gorzej więc wątpię aby to się samo rozwiązało. Jak nie ma jakichś ciekawych rozwiązań dla Laradock'a to będę próbował jeszcze na próbę spróbować jakiś inny, czysty obraz z samą podstawą bo jestem ciekaw czy to problem z samym Laradockiem, Dockerem na Win czy czymś innym. Odpal sobie Kod docker volume ls a następnie sprawdź ile masz volumenów, oraz w jaki sposób one są podmontowane. Dla przykładu, w katalogu projektu będziesz miał najczęściej: katalog ".git" który może być spory, katalog ".idea" jeżeli korzystasz z phpstorma i zapewne temu podobne. Wszystkie te katalogi są ci w ogóle niepotrzebne w samym kontenerze, a ciągłe aktualizacje w tych katalogach po prostu nadużywa i tak już wolnego "połączenia" pomiędzy wirtualką z dockerem a samym windowsem/makiem. A z tego co widzę po tych plikach, to tam nawet baza danych jest zmontowana lokalnie, co daje kolejny ogromny narzut. Użyj jakiegoś innego rozwiązania, gdzie będziesz miał rzeczy które są ci potrzebne i porównaj czy wciąż będzie to chodzić tak gównianie.To nie jest wina Windowsa, tylko Dockera. Działa on natywnie tylko na Linuksie, pozostałe systemy muszą w jakiś sposób "wirutalizować" środowisko, w którym pracują. Najgorzej jest, gdy korzysta się z volumes. Znalazłem trzy rozwiązania problemu, z których przetestowałem dwa. Oba działają raczej średnio. Aktualnie przymierzam się do skorzystania z docker machine i kontenerów postawionych na virtual boksie. P.S. W grudniu wychodzi nowa wersja aplikacji na maca (i prawdopodobnie na windowsa). Może udało im się naprawić problem wydajności. To jest wina windowsa, jak i osx'a. Gdyby te systemy w jakiś łatwiejszy sposób umożliwiały czy to wirtualizowanie czy konteneryzowanie innych systemów, o obsłudze innych niż "słuszne" NTFS systemów plików nie wspominając (oczywiście w przypadku windowsa), to by się to wszystko lepiej integrowało. A tak z racji sporych różnic pomiędzy systemami, powstała proteza, żeby użytkownicy windowsa czy osx'a nie byli gorsi i mieli swojego "natywnego" dockera, bo wiadomo, teraz kontenery są hiper popularne. Na codzień pracuje na osx'ie, wcześniej pracowałem głównie na ubuntu i przejście było najbardziej bolesne, kiedy się okazało jakim kastratem jest osx pod względem narzędzi developerskich na których dotychczas pracowałem. Nie zrozumcie mnie źle, windows, mak czy linuks to są dobre systemy i każde z nich ma swoje zalety i wady. Jako że dla mnie istotny jest development, to z automatu na samym końcu ląduje windows. Maka mocno ratuje społeczność i uniksowa kompatybilność. Gdyby stworzyli coś zupełnie swojego, zapewne byłoby tak samo jak z windowsem.. Aby podsumować ten wywód, na windowsie czy maku istotne jest to co montujecie. Jak twój projekt jest w katalogu `~/projects/my-project` a w katalogu projektu istotne są tylko katalogi `~/projects/my-project/vendor` i `~/projects/my-project/src`; to montujcie tylko te dwa katalogi, zamiast całego katalogu z projektem. Nie montujcie plików z bazy danych - użyjcie named volumes (nie przepadną wam dane, ale nie będziecie tego montować lokalnie). Jak pracujecie na wersjach developerskich aplikacji, mimo wszystko włączajcie cache i inne. Jeżeli w projekcie macie pliki które mają różną wielkość znaków, pilnujcie żeby odwołania do tych plików były prawidłowe, z racji tego że windows czy mak ignorują wielkość znaków (na maku można to wyłączyć) to będzie wam szukało plików w kilku wariantach, co będzie minimalnie wolniejsze. Jeżeli mimo tego aplikacja działa wolno, a dockera używacie bo to jest "fajne", to zastanówcie się nad po prostu instalacją projektu lokalnie. U mnie używam kontenerów w developmencie, stagingu oraz produkcji. Nie mniej, debugowanie kodu lokalnie, w kontenerach do których nie ma się łatwego dostępu (w przypadku maków ułomna jest też sieć, nie istnieje interfejs docker0 dzięki któremu można dostać się do kontenera po jego IP, trzeba wszystko bindować lokalnie i dostawać się po localhost..), staram się aby tylko bazy danych działały w kontenerach, a samą aplikacje odpalam lokalnie i łącze się do tych baz danych. Nie ma innego wyjścia, trzeba sobie jakoś radzić.. |
|
|
6.12.2017, 14:20:27
Post
#12
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) |
Tylko cały czas ciekawi mnie objaw tego opóźnienia, aniżeli sama wydajność Docker'a bo ta przyznaje, póki co jest 1/3 wolniej niż serwer ale to ciągle mniej niż 1 sekunda i bym to tymczasowo przebolał.
Natomiast ciekawi mnie ten objaw przerwy. Zaraz po włączeniu Dockera i po długiej przerwie czas uruchomienia: 2x4 sekundy. Dłuższa przerwa: 2x3 sekundy. Krótka przerwa: Mniej niż 1 sekunda (normalnie). Wyraźnie coś ładuje, jakiś cache traci się i z tego co pamiętam na Vagrant też tak miałem że pierwsze odpalenie było dłuższe ale potem już było cały czas ok. -------------------- |
|
|
6.12.2017, 14:29:53
Post
#13
|
|
Grupa: Moderatorzy Postów: 36 440 Pomógł: 6290 Dołączył: 27.12.2004 |
A moze poprostu twoja aplikacja na docker ma inna konfiguracje niz na serwer a co za tym idzie inaczej sie zachowuje?
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
6.12.2017, 14:46:08
Post
#14
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) |
Hmm, jaką konfigurację masz na myśli? Pliki env praktycznie są zbieżne, sama konfiguracja serwera jak najbardziej może nie być ale nie wiem od czego zacząć przy "wyrównywaniu" środowisk.
Jak bym miał coś szukać to z jakimś cache, tylko pytanie czemu lokalnie tego cache nie trzyma albo trzyma ale tylko minutę + są jakby 2 zestawy bo aplikacja ładuje się w 1 sekundę, 6 sekund (teraz np. pisząc tego posta) i te najdłuższe 8 sekund. -------------------- |
|
|
6.12.2017, 15:06:16
Post
#15
|
|
Grupa: Moderatorzy Postów: 36 440 Pomógł: 6290 Dołączył: 27.12.2004 |
zazwyczaj, konfiguracja lokalna aplikacji jest inna niz tej na serwerze.
Przykladowo w symfony lokalnie nie musisz recznie czyscic cache, na serwerze juz musisz. To tylko jeden z przykladow. A moze to faktycznie ci muli z jakiegos powodu jakis kontener. Z jakiego to wiadomo - windows Juz to mowiono tu wczesniej, ale moze zamiast bawic sie w kobyle laradoc zrob wlasnego docker-compose -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
6.12.2017, 15:51:10
Post
#16
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) |
Ktoś poleci jakiś sprawdzony obraz? Nginx, php 7.1 (+ rozszerzenia), mariadb?
-------------------- |
|
|
7.12.2017, 08:17:03
Post
#17
|
|
Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%) |
Użyj oficjalnych obrazów i posklejaj to sobie w docker-compose. Jest to trochę dodatkowej wiedzy, ale dzięki temu będziesz wiedział jak działa całe twoje środowisko, a nie musiał się zastanawiać, dlaczego coś gdzieś ci muli. Polecam korzystać z obrazów gdzie bazą jest alpine (często w tagach jest np nginx:alpine), głównie ze względu na ich minimalizm oraz wydajność.
|
|
|
7.12.2017, 09:52:31
Post
#18
|
|
Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) |
Nawet jak lokalnie uda się w 100% zasymulować środowisko to i tak jest jeszcze problem danych, różnych API etc. Dlatego ja preferuję rozwiązanie, które polega na równoległym postawieniu aplikacji w trybach dev, staging oraz production. Kod napisany lokalnie jest sprawdzany na dev, potem staging (produkcyjne dane) i w końcu trafia na produkcję. Przy debugowaniu kolejność rzecz jasna odwrotna.
Wkurza mnie, kiedy bug na 15 minut zajmuje 15 godzin bo muszę ogarnąć środowisko, pobrać dane, wstawić zaślepki dla jednych API, zasymulować działanie innych etc. A prawdziwa tragedia, gdy masz architekturę rozproszoną i jeden serwis jest zależny od drugiego przez jakiegoś rabbita etc. Dlatego nie ma sensu się spinać by lokalnie mieć identycznie jak na serwerze - jak Ci docker zamula to go po prostu nie używaj. |
|
|
7.12.2017, 13:33:24
Post
#19
|
|
Grupa: Zarejestrowani Postów: 616 Pomógł: 84 Dołączył: 29.11.2006 Skąd: bełchatów Ostrzeżenie: (0%) |
|
|
|
10.12.2017, 02:20:11
Post
#20
|
|
Grupa: Moderatorzy Postów: 2 921 Pomógł: 269 Dołączył: 11.08.2005 Skąd: 127.0.0.1 |
To jest wina windowsa, jak i osx'a. Gdyby te systemy w jakiś łatwiejszy sposób umożliwiały czy to wirtualizowanie czy konteneryzowanie innych systemów, o obsłudze innych niż "słuszne" NTFS systemów plików nie wspominając (oczywiście w przypadku windowsa), to by się to wszystko lepiej integrowało. Równie dobrze możesz napisać, że to wina Windowsa, że nie można na nim odpalić aplikacji z iPhone'a. Docker po prostu sobie nie radzi na Windowsie i na MacOS. Ale nie o tym chciałem pisać. Szukając rozwiązania problemu natknąłem się na takie coś: https://docs.docker.com/docker-for-mac/osxfs-caching/ (a już chciałem odpalać docker-machine). Nadal nie jest to idealne rozwiązanie i czasami projekt potrafi zamulić, ale poprawa jest wyraźnie zauważalna. -------------------- I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features. |
|
|
Wersja Lo-Fi | Aktualny czas: 28.03.2024 - 20:22 |