Vagrant este extrem de lent cu anumite aplicații

Unul din motivele pentru care am fost foarte sceptic când a fost vorba de a folosi Vagrant este că întotdeauna a fost extrem de lent.

De exemplu, urmând aceste instrucțiuni, am timpi de încărcare foarte mari, de ordinul minutelor la fișierele statice (js, css).

Evident că asta descurajează orice încercare de a face… orice.

Partea interesantă este că asta se întâmplă doar cu aplicații rails (discourse, gitlab), dar cu aplicații PHP merge excelent (folosesc vvv)

Sunt pe Windows 8.1, ultima versiune de Vagrant & Virtualbox.


Folosind acest gem am scăzut timpul de la 3-4 minute la ~40 secunde. Este mai bine dar departe de a fi utilizabil.

1 Like

Unu la mana, de ce Windows 8.1? Doi la mana, te-ai uitat in fisierul de Vagrant sa vezi ce se incarca? Poate incarca chestii inutile care tie nu iti trebuie sau poate imaginea folosita este una bloated.

Dar totusi de ce Windows 8.1? Pe Linux ai incercat? Merge la fel?

În fișierul vagrant mă uit degeaba că nu știu ce ar trebui să încarce. Idem și pentru imaginea bloated. Dar tind să cred că fiind imaginile oficiale pentru development nu aici e problema.

De asemenea, se întâmplă la două proiecte complet diferite ce nu împart nici o configurație (chiar și imaginile SO-urilor sunt diferite). Am întâmpinat aceeași problemă la proiectul unui client (atunci eram pe Windows 7 iar Vagrant era beta și se instala prin gem); ăsta a fost motivul pentru care am renunțat la acel proiect înainte să-l încep.


Hai să nu pornim o discuție despre sistemele de operare dacă nu îmi poți răspunde la o întrebare simplă: cum rulez photoshop în Linux?

Da, știu, Windows e de căcat, Windows 8 e o mizerie, 8.1 e o mizerie și mai mare, Microsoft ne vrea banii, dar nu asta am întrebat. Și nu, Gimp nu e Photoshop.

Chiar dacă ar rula bine pe Linux nu m-ar ajuta foarte mult; nu am de gând să schimb SO pentru a face mici modificări ici-colo într-un proiect ce nici măcar nu e al meu.

Point taken. Daca vrea cineva sa deschida un topic despre SO nu are decat. :slight_smile:

Maybe this will help

https://meta.discourse.org/t/super-slow-loading-on-windows-using-vagrant-ubuntu-vm/16453

http://www.adrikodde.nl/blog/2013/tips-debug-slow-vagrant-box/

1 Like

Am dat și eu de primele două link-uri. Al doilea nu prea se adresează utilizatorilor de Windows (NFS e disponibil doar pe Linux/Mac). Am dat 6Gb și 4core și degeaba.

S-ar putea ca asta să fie buba:

Tip 4: Decrease number of files in shared folder

The sync of the shared / synched folder tends to be slow if it contains a lot of files (>1000). Try to create symlinks to vendor folders or move a few directories to see if that’s causing the problem.

Discourse are aproape 7000 fișere.

1 Like

:slight_smile: eu am un request sub 200 de ms pe un laptop i3 (mai vechiut) dar cu ssd.

Singura problema pe care o am este la provision (atunci cand mai vad ca imi lipseste ceva). Pana in lipsa de altceva Vagrant rules.

1 Like

Ce SO ai?

(și eu am SSD; sigur nu e o limitare de performanță din partea PC-ului)

windows 7. Se misca acceptabil pentru un laptop.

tl;dr: rsync to the rescue (merge si pe win cu cygwin).

Imi pare rau @iamntz. Daca ai fi folosit Mac nu ai fi avut nicio problema :smiley:

Lasand gluma la o parte, ai putea renunta complet la Vagrant si merge direct pe VirtualBox, old style.
Pasii ar fi cam astia. Suferinta e minima, doar pana la terminarea configurarii networking-ului.

  1. Instalezi SO, actualizezi, instalezi programe, configurezi apache/nginx, ruby, php, etc.
  2. Configurezi networking-ul pentru masina virtuala in virtualbox. Ai nevoie sa fie Hostonly si NAT.
  3. Configurezi unul din IP-uri ca fiind static. Pentru a accesa dupa masina virtuala din browser, ssh, etc.
  4. Instalezi Samba si configurezi sa iti arate directorul dorit sub Windows.

Apoi iti poti exporta apppliance-ul ca sa nu te mai chinui la urmatorul proiect cu toate setarile.

Stiu ca toate chestiile de mai sus ti le fac Vagrant for free, dar poate e bine sa ai si un old-school virtual box la indemana.

Gasesti un tutorial excelent si aici: http://www.innobyte.com/blog/tag/virtualbox/

2 Likes

Bullshit :sunny: (I’m a Mac user)

Also: great news everyone: https://www.vagrantup.com/blog/feature-preview-vagrant-1-5-rsync.html

2 Likes

Am încercat și asta. Fără nici un succes notabil însă. (atât rsync cât și smb nu au avut succes)

@tacheshun: o contribuție absolut ocazională nu justifică toată bătaia de cap necesară pentru instalarea manuală unui VM + apps + actualizări + configurări :slight_smile: Caut o soluție la problema mea, nu o alternativă.

@iamntz cum ai testat cu rsync?

Presupun ca ai dat disable complet la shared folders si apoi ai folosit ceva de genul:

Vagrant.configure("2") do |config|
  config.vm.synced_folder ".", "/vagrant", type: "rsync",
    rsync__exclude: ".git/"
end

via https://docs.vagrantup.com/v2/synced-folders/rsync.html

Am testat cu rsync fix ca în exemplul din documentație. Și primesc asta la pornirea VM:

Error: Warning: Permanently added '[127.0.0.1]:2222' (RSA) to the list of known hosts.
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(605) [Receiver=3.0.9]
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(235) [sender=3.1.1pre1]

‘smb’, pe de altă parte, pornește. Dar nu se simte nici o diferență de performanță.


Într-o bună zi (când voi avea suficientă răbdare și câteva ore de pierdut) probabil voi încerca ori debug la minunea rsync ori varianta propusă de @tacheshun (deși e un pic extrem)

[Receiver=3.0.9]
[sender=3.1.1pre1]

descarca pe win same build? 3.0.9

via Google: https://code.google.com/p/licielrsync/source/browse/redist/rsync/rsync/rsync-3.0.9/?r=10#rsync-3.0.9%2Fbin

1 Like

Bun, partea bună este că nu mai dă eroarea aia (deh, utilizator de windows, erorile astea sunt prea criptice :dash:).

Partea rea este că:

==> default: - Exclude: [“.vagrant/”, “.git/”]
0 [main] rsync 1588 find_fast_cwd: WARNING: Couldn’t compute FAST_CWD pointer. Please report this problem to the publicmailing list [email protected]
There was an error when attempting to rsync a synced folder.
Please inspect the error message below for more info.

Host path: /c/work/discourse/
Guest path: /vagrant
Command: rsync --verbose --archive --delete -z --copy-links --chmod=ugo=rwX --no-perms --no-owner --no-group --rsync-path sudo rsync -e ssh -p 2200 -o StrictHos tKeyChecking=no -o UserKnownHostsFile=/dev/null -i ‘C:/Users/ionut_000/.vagrant.d/insecure_private_key’ --exclude .vagrant/ --exclude .git/ /c/work/discourse/ v [email protected]:/vagrant
Error: 0 [main] rsync 1588 find_fast_cwd: WARNING: Couldn’t compute FAST_CWD pointer. Please report this problem to the public mailing list [email protected]

Eh, acum mă pun să caut, să vedem :smiley:

Am impresia ca trebuie sa ai si dll-urile de la cygwin in acelasi director cu rsync.exe

Ceva de genul: http://www.linux.com/community/blogs/131-business-or-qenterprise/357646

Apoi te poti juca cu parametrii / Ah si mai era un fix cu chmod 400 in directorul din care faci sync catre remote vm.

DLL sunt la locul lor (executabilul propriu-zis rulează fără nici o eroare). Eroarea aia mi-o trântește vagrant când pornesc VM.

Sper să am ceva timp în weekend; poate îi dau de cap :smile:

Am mai săpat un pic. Aparent rsync normal nu e bun și este nevoie de cygwin propriu-zis: șters orice urmă de rsync => instalat cygwin => selectat rsync 3.0.9 => rulat vagrant up din cygwin.

Rezultatul? Timpul de încărcare a scăzut la o valoare mult mai mică (~15 secunde). Mult mai bine; acum parcă e un pic mai tentant să încerc anumite chestii.

1 Like

Cam offtopic sunt, ma scuzati, dar simteam nevoia sa ma eliberez.
Azi a trebuit sa incep un proiect nou si am optat pentru un box Vagrant cu 4096 RAM si 2 CPU. Nothing fancy, ubuntu 12, apache, mysql, php, redis, magento. My usual stack.

Se misca de 3x mai lent decat acelasi OS instalat de la 0 clasic sub Virtual Box cu 1 CPU, 1024 RAM.

E adevarat, ma “chinui” cam 1 ora sa instalez si sa configurez tot. Cu Vagrant probabil ar fi durat aprox. 15 minute tot.

Retrag cuvintele scrise de mine mai sus:

1 Like