Jak przyspieszyć Vagrant Box (na mac osx)
Dziś przypadkowo, całkiem zrezygnowany i zmęczony już vagrantem, szukałem alternatyw, myślałem, aby w końcu przesiąść się na localhost i lokalnie instalować wszystkie potrzebne paczki. Jedną z głównych przyczyn używania vagranta było to, że w hermetycznym środowisku mogę mieć dowolne rzeczy i nie będą mi one zaśmiecały całego systemu, jednakże odkąd pamiętam, vagrant raz był szybki, raz niemiłosiernie wolny, development czasami doprowadzał mnie do szewskiej pasji… albo pasji Gibsona :). Ok do rzeczy, bardzo przypadkowo trafiłem na linka https://stefanwrobel.com/how-to-make-vagrant-performance-not-suck
O co chodzi z ustawieniami vagranta, domyślnie współdzielenie folderów odbywa się przez „działający wszędzie” domyślny system plików, ustawienia NFS „niestety” nie działają pod windowsem, działają na systemach UNIX (czyli linux, i mac osx), dlatego ta opcja domyślnie jest wyłączona.
Moje ustawienia do vagranta wyglądają następująco:
config.vm.box = "debian" config.vm.network :hostonly, "192.168.66.6" config.ssh.forward_x11 = true config.vm.forward_port 80, 8080 config.vm.forward_port 3000, 3000 config.vm.forward_port 9501, 9001 config.vm.forward_port 9000, 9000 config.vm.forward_port 9500, 9500 config.vm.forward_port 9292, 9292 config.vm.forward_port 27017, 27017 config.vm.share_folder "v-projects", "/var/www/projects/", "/path/to/projects", mount_options: ['rw', 'tcp', 'nolock', 'noacl', 'async'], type: "nfs", nfs_udp: false
Dokumentacja mówi na ten temat: https://www.vagrantup.com/docs/synced-folders/nfs.html
I teraz najważniejsze, zainstaluj aplikację wrk (https://github.com/wg/wrk) na maćku zainstaluj korzystając z brew install wrk
i potem odpal komendę wrk -d120s http://url_do_vagranta
o to co mi pokazało przed zmianą na NFS i po zmianie:
# przed zmianą: Running 2m test @ http://proj 2 threads and 10 connections Thread Stats Avg Stdev Max +/- Stdev Latency 258.21ms 210.38ms 1.98s 85.19% Req/Sec 21.14 10.37 70.00 63.19% 4722 requests in 2.00m, 42.11MB read Socket errors: connect 0, read 1, write 0, timeout 16 Requests/sec: 39.34 Transfer/sec: 359.26KB # po zmianie na NFS: $ wrk -d120s http://proj Running 2m test @ http://proj 2 threads and 10 connections Thread Stats Avg Stdev Max +/- Stdev Latency 21.82ms 47.66ms 607.73ms 91.47% Req/Sec 1.22k 271.80 2.06k 68.91% 291902 requests in 2.00m, 2.54GB read Requests/sec: 2431.65 Transfer/sec: 21.68MB
Czyli zmiana o 6200%!!! Po prostu WOW!!! Mam nadzieję, że będziecie zadowoleni z tego rozwiązania 🙂
Najnowsze komentarze