Magento2 berjalan sangat lambat pada pengembangan localhost

25

Saya baru-baru ini mulai mengembangkan pada ekstensi baru magento2 atau kustomisasi, dan kesan pertama saya adalah mimpi buruk. Saya harus menunggu sekitar 20-30 untuk setiap perubahan yang saya lakukan? sangat?

Saya berbicara tentang mode pengembangan , saya tahu bahwa dalam produksi dengan cache diaktifkan dan hal-hal lain situs web dapat lancar. Tetapi ketika saya sedang bekerja dengan masalah ekstensi atau tata letak saya harus menghapus file statis, membersihkan cache, dll.

Pertanyaan saya adalah, bagaimana Anda semua pengembang M2 bekerja? karena saya tidak percaya Anda harus menunggu 20-an-30-an untuk menyegarkan halaman ...

Lingkungan saya: PC saya "bagus" i5 dengan RAM 8GB. Saya perlu bekerja dengan Windows jadi saya menggunakan gelandangan:

  • Penggunaan semua 4 core CPU
  • Gunakan RAM 5120MB
  • Ubuntu / trusty64 - Ubuntu 14.04
  • PHP Versi 7.0.12-1 + deb.sury.org ~ trusty + 1
  • MariaDB - 10.1.18-MariaDB-1 ~ trusty
  • Magento 2.1.2 diinstal hanya dengan sampledata (tidak ada lagi modul yang dipasang)
  • (Tanya saya jika Anda ingin tahu lebih banyak)

Apa yang sebenarnya terjadi? Biasanya M2 merespon dengan baik, lambat tapi oke, sekitar 5-10 detik untuk memuat halaman, tapi kadang-kadang (lebih sering daripada kadang-kadang) hanya macet selamanya! kadang-kadang halaman pertama dan kadang-kadang file css, js, html tapi selalu masalahnya dengan TTFB.

Saya melihat masalah akan setup wizard juga ... dengan angular.js file-file ini berlangsung selamanya ...

2 gambar ini adalah tentang navigasi dalam pengaturan setup.

http://imgur.com/Izoyuhj http://imgur.com/Vs5q8eT

Kemudian satu lagi menavigasi di katalog frontend: http://imgur.com/oXYC52D

Apa yang sebenarnya saya tanyakan? Apakah ini normal? kalian bekerja dengan waktu ini? Saya berkomentar dengan beberapa rekan kerja dan kami tidak percaya, saya harus bekerja seperti ini? Saya terkadang putus asa menunggu sepanjang waktu menonton layar ...

Jika seseorang meminta saya untuk menunjukkan kepadanya sebuah tes, seperti membuat produk baru atau sesuatu seperti itu, dia hanya panik ... Membuat pesanan baru, mengisi bidang dan setiap bidang mengeksekusi js yang berlangsung selama 5-6s ...

Saya tidak tahu tetapi saya merasa sangat tidak enak untuk berkembang dengan hal ini ...

slayerbleast
sumber
Belum memiliki kesempatan untuk bermain dengan Magento 2: tetapi saya menganggap bahwa sebagian besar masalah kinerja berasal dari lingkungan gelandangan Anda. Apakah Anda menggunakan kotak virtual dengan gelandangan atau sesuatu yang lain. Menggunakan banyak core dengan kinerja virtualbox menurunkan. Apakah Anda menjalankan magento dari folder bersama di gelandangan> magento menulis file kembali ke share yang sama dengan yang Anda dapatkan masalah kinerja.
Olli Tyynelä
Anda juga mungkin kehabisan memori pada sistem Anda apa yang menyebabkan menggunakan swap pada host jika Anda memberikan 5gigs gelandangan. hanya menambah jumlahnya jika Anda benar-benar membutuhkannya.
Olli Tyynelä
Sebagian besar masalah Anda adalah Anda menggunakan Windows. Saya berada di Windows selama bertahun-tahun dan itu sangat lambat dengan gelandangan / magento. Ini karena mode sinkronisasi file, ini tidak sesuai dengan nfs. Saya mulai dual boot ke desktop Ubuntu dan situs magento saya sangat cepat, lalu beberapa saat kemudian saya mendapatkan mac, yang menggunakan NFS, dan juga sangat cepat.
Shawn Abramson
Ya, itu gelandangan dengan virtualbox. Mengapa menggunakan lebih banyak core harus menurunkan kinerja? Saya berasumsi memberikan semua sumber daya ke VM mungkin memperlambat "pc saya" tetapi lebih cepat VM saya ... Dan folder yang saya gunakan adalah / var / www (Saya mencoba untuk tidak menggunakan folder bersama, itu hanya "linux" yang sedang berjalan sekarang). Bagaimana saya bisa melihat apa yang gagal? Saya dapat menjalankan top, atau perintah seperti itu .... tetapi tidak tahu bagaimana menafsirkan ...
slayerbleast
@ShawnAbramson Yap ... kami menyarankan untuk menginstal dual boot hanya untuk mencobanya karena seperti yang saya katakan kami tidak percaya pengembang M2 bekerja seperti yang saya lakukan sekarang hehe ...
slayerbleast

Jawaban:

8

Saya mencoba semuanya dan satu-satunya yang berfungsi adalah mesin virtual yang menyediakan bitnami. https://bitnami.com/stack/magento/virtual-machine

Serius, saya tidak tahu apa ini vm, tetapi berjalan sangat cepat. Saya mencoba membuat VM saya menggunakan instalasi baru Ubuntu, CentOS, dll. Tapi tidak ada yang bekerja dengan baik seperti VM ini.

slayerbleast
sumber
Saya pikir perbedaan utama pada spesifikasi VM ini adalah memcache? Yang, pada Windows saya (Paling tidak pada PHP 7, tidak mungkin)
MackieeE
6

nonaktifkan penggabungan dan minimalkan CSS / JS:

Stores > Configuration > CSS Settings (Javascript Settings) > Merge CSS (Merge JS) > NO

Stores > Configuration > CSS Settings (Javascript Settings) > Minify CSS (Minify JS) > NO

Lihat juga panduan ini tentang cara meningkatkan kinerja Magento 2.

Konstantin Gerasimov
sumber
1
Pengaturan default sudah memiliki nilai-nilai ini. Dan ini tidak terlalu berpengaruh ...
slayerbleast
Jadi apakah penggabungan akan bermanfaat di server online? Lebih banyak overhead menuju pemrosesan dan tidak mengunduh?
Mohammed Joraid
Mengapa Anda menonaktifkan CSS / JS Menggabungkan dan meminimalkan, ini benar-benar pilihan untuk meningkatkan kecepatan, bagi saya ini seperti menembak diri Anda sendiri
John
4

Saya menemukan bahwa mode pengembang menonaktifkan semuanya - yang berlebihan. Ada beberapa aspek yang ingin saya cache, seperti terjemahan. Untungnya env.phpAnda masih dapat mengatur cache mana yang digunakan secara khusus:

'cache_types' => 
      array (
        'config' => 1,
        'layout' => 0,
        'block_html' => 0,
        'collections' => 1,
        'reflection' => 1,
        'db_ddl' => 0,
        'eav' => 1,
        'customer_notification' => 1,
        'target_rule' => 1,
        'full_page' => 0,
        'config_integration' => 1,
        'config_integration_api' => 1,
        'translate' => 1,
        'config_webservice' => 1,
        'compiled_config' => 1,
      ),

Ini adalah di atas yang saya pilih untuk disimpan sementara di Checkout, karena ini sangat front-end. Saya memilih untuk tidak men-cache Layout; Blokir dan Halaman penuh untuk melihat perubahan saya.

MackieeE
sumber
Terima kasih banyak! Saya mengalami masalah ini, karena saya memutakhirkan Magento2 ke versi yang lebih baru dan melakukan instalasi baru. Rupanya itu menimpa env.php saya, yang membuatnya lambat tanpa henti. Koreksi ini ke env.php memperbaikinya. Terima kasih lagi!
codiga
4

Saran dari Magento diposting setelah pertanyaan ini dijawab. Membaca jawaban lain saya pikir informasi ini bisa menjadi tambahan yang bermanfaat

http://devdocs.magento.com/guides/v2.2/extension-dev-guide/build/optimal-dev-environment.html

Konfigurasi Optimal

Berikut ini adalah daftar optimasi yang dapat Anda lakukan pada mesin pengembangan lokal Anda

  • Magento merekomendasikan untuk menginstal dan menggunakan versi terbaru yang didukung dari PHP 7 untuk meningkatkan kinerja.
  • Ganti database MySQL Anda dengan Percona.
  • Pastikan Anda menginstal dan mengaktifkan PHP OPcache.
  • Xdebug mati secara default. Aktifkan fitur ini hanya ketika Anda membutuhkannya karena memerlukan banyak memori dan menurunkan kinerja. Konfigurasi xdebug.max_nesting_level perlu disetel ke 200 atau lebih besar untuk Magento. Anda dapat menambah memori yang tersedia untuk PHP untuk mendapatkan peningkatan kinerja dengan Xdebug aktif.
  • Jika Anda membutuhkan data sampel, Anda dapat menginstalnya menggunakan komposer atau dengan mengkloning repositori.
  • Untuk mempercepat pengembangan ujung depan, matikan penggabungan CSS dan JavaScript.
  • Pastikan caching dihidupkan (ini adalah perilaku default). Secara umum, hanya cache halaman dan blokir cache harus dimatikan untuk pengembangan dan dihidupkan kembali saat pengujian.
  • Validasi cap waktu opcache harus selalu aktif untuk pengembangan. Pengembangan tidak mungkin dengan opcache aktif dan validasi ulang karena modifikasi PHP apa pun akan memerlukan reset cache.
Ian di Xantek
sumber
Bagi saya, Opcache berhasil. Pemuatannya cukup cepat sekarang.
Amit Singh
Satu hal lain yang saya temui adalah Xdebug dapat diaktifkan secara default yang juga memiliki hit kinerja. Periksa /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini Setelah mengubah saya pikir Anda perlu memulai ulang penampung galangan kontainer restart {web-container-name}
Ian di Xantek
1

Nyalakan cache Anda.

Pergi ke <your magento 2 directory>/bindan jalankan perintah ini magento cache:enable.

Bersihkan cache ketika Anda mengedit frontend untuk melihat apa yang telah Anda edit.

Pergi ke <your magento 2 directory>/bindan jalankan perintah ini magento cache:clean.

Referensi saya

Saya baru mengenal magento 2 juga. Saya harap seseorang memiliki cara untuk membuat Magento 2 cepat bahkan ketika cache dinonaktifkan.

Batal
sumber
1
Tidak tahu apakah ini solusi yang layak ... Di mana saja dikatakan menonaktifkan cache pada mode pengembangan ...
slayerbleast
6
Tentu saja jika saya mengaktifkan cache, situs akan berjalan lebih cepat ... tapi setiap perubahan saya harus membersihkan cache ... masih buang waktu saya pikir ...
slayerbleast
1

Pengaturan Saya di Ubuntu 16.10 untuk pengembangan frontend untuk suntingan KURANG :

  1. Setel mode Pengembang:

    php bin/magento deploy:mode:set developer

  2. Aktifkan semua cache:

    php bin / magento c: aktifkan

  3. Fronted Development Workflow diatur ke kompilasi sisi Server

  4. Setelah ada perubahan dalam lebih sedikit file, jalankan

    mendengus bersih

(Terakhir kali saya mulai - menonton kasar dengan penjelajahan langsung dan hebatnya)

BartZalas
sumber
0

Hanya ingin berbagi pengalaman pribadi saya, solusi yang saya temukan adalah menginstal Xampp dengan versi php 7.0 karena Magento tidak sepenuhnya kompatibel dengan versi Php yang lebih tinggi. Saya mencoba Gambar Bitnami terdaftar sebagai jawaban tetapi tidak berfungsi karena saya mengharapkan Xampp 7.0.23 Unduh Tautan

pengguna3127648
sumber
Sangat? Dengan xampp bekerja dengan baik? Saya mencoba berkali-kali dan itu mengerikan ... Apa versi Magento? Mungkin mereka sudah memperbaiki kinerja kali ini. Saya akan mencoba lagi. Dan mengapa Gambar Bitnami tidak berfungsi seperti yang Anda harapkan?
slayerbleast
Saya memiliki tautan Magento 2.1 dan Xampp 7.0 yang ditambahkan di atas, Membandingkan gambar Bitnami ke Xampp 7.0 saya menemukan xampp mudah dan lebih cepat
user3127648
0

Meningkatkan PHP memory_limit dalam file php.ini akan membuat perbedaan yang baik. Namun itu tidak akan membuatnya sangat sangat halus (Meskipun itu akan menghemat waktu).

Nilai standarnya adalah 512M. Pada mesin lokal saya, saya menetapkan ini pada "-1" (tidak terbatas) dan memberikan waktu pemuatan yang lebih baik.

Nilai yang disarankan adalah memory_limit = 2G yang disebutkan di sini .

Magento berat dan membutuhkan perangkat keras berkinerja tinggi seperti SSD agar lancar :(

Binod - GoFundMonica
sumber
memory_limittidak ada hubungannya dengan kinerja sama sekali. Jelas dari nama arahannya.
Danila Vershinin
@DanielV. Saya juga bertanya-tanya tentang itu, tetapi kemudian saya menemukan ini: devdocs.magento.com/guides/v2.2/install-gde/prereq/… di mana dikatakan 2G sebagai nilai yang disarankan
Binod - GoFundMonica
1
Sekali lagi, direkomendasikan karena alasannya sendiri. Yang sama sekali tidak ada hubungannya dengan kinerja. Batas memori hanya ada untuk tidak menghentikan sistem Anda seandainya beberapa skrip PHP (atau dalam hal ini, modul Magento) akhirnya memakan semua RAM server. Sama sekali tidak ada dampak kinerja dari menetapkan nilai terlalu rendah atau terlalu tinggi. Ini hanya arahan preventif untuk membuat sistem lebih aman. Dan saya terkejut bahwa orang secara buta berasumsi bahwa memberikan lebih banyak memori untuk itu berarti kinerja dicapai melalui arahan ini. Bukan dan tidak akan pernah.
Danila Vershinin
Poin yang menarik, Daniel. Saya benar-benar berasumsi secara membabi buta. Bagaimana kita bisa menunjukkan ini? Adakah petunjuk yang bisa Anda bimbing dengan saya sehingga saya bisa mengalami ini?
Binod - GoFundMonica
Atur terlalu rendah (mis. 16MB yang tentunya tidak cukup untuk M2) dan PHP akan gagal dengan kesalahan fatal. Instal modul sebanyak mungkin dan atur terlalu tinggi (mis. 4GB) dan semuanya akan berjalan OK sampai Anda mendapatkan beberapa pengunjung situs lagi yang pasti akan menyebabkan server Anda mencapai keadaan Kehabisan Memori. Anda tidak perlu eksperimen ini jika hanya membaca dokumen untuk arahan itu. PHP berjalan di memori sepanjang waktu. Itu tidak bertukar ke disk atau melakukan hal-hal lucu seperti itu.
Danila Vershinin
0

Jika Anda mengalami masalah pengaturan pada kotak Vagrant, itu hampir pasti bagaimana folder Anda akan dibagikan. Mereka harus dibagikan melalui NFS.

Setelah bermain-main dengan banyak kotak yang berbeda, saya menyadari bahwa meskipun saya telah menetapkan NFS di konfigurasi, itu tidak benar-benar berfungsi dan sistem berbagi VirtualBox standar mengambil alih.

Saya kembali ke dasar-dasar dan menyiapkan kotak LEMP sederhana dan menginstal plugin ini:

https://github.com/Learnosity/vagrant-nfs_guest

NFS yang dikonfirmasikan bekerja dan semuanya baik-baik saja.

engbmaso
sumber
0

Hal-hal yang dapat membuat pengaturan Magento 2 Anda cepat di server lokal Anda atau secara umum di lingkungan server apa pun.

  1. Minimalkan JS dan CSS
  2. Gunakan aplikasi caching seperti Redis atau Memcached.
  3. Aktifkan semua cache seperti block_html, tata letak, page_cache dll yang disediakan oleh Magento 2.
  4. Gabungkan CSS dan JS
  5. Aktifkan produk dan kategori flat.

Sekarang ketika pada pengembangan lingkungan siram hanya cache yang diperlukan alih-alih membilas seluruh cache untuk mencegah seluruh pembangunan kembali cache.

Sourabh Kumar Sharma
sumber
0

Alasan utama mengapa magento2 lambat dalam mode pengembang terkait dengan ribuan file statis dan dikompilasi yang dihasilkan dengan cepat.

Ada 3 solusi untuk ini:

  • Pasang seluruh direktori dengan NFS (SSD masih wajib).

  • Pasang hanya direktori aplikasi (siapa pun perangkat keras Anda akan berfungsi dengan baik) tetapi Anda kehilangan akses ke / direktori vendor pada mesin host Anda.

  • Pasang seluruh proyek dengan rsync dan kecualikan direktori tempat file dihasilkan (pub / statis, dihasilkan / kode dll ...).

Saya berhasil, coba saja: https://github.com/zepgram/magento2-fast-vm/

Benjamin Calef
sumber