Saya memiliki masalah kinerja dengan Magento 2.1
Di toko saya, saya punya 90.000 produk. Saya menambahkan produk ini ke sabun. Ketika saya melakukan ini, dibutuhkan sekitar 7 detik untuk setiap artikel (produk?) (Permintaan> Respons). Singkatnya, butuh beberapa hari untuk memasukkan semua produk.
Sekarang semua produk ada di toko. Semua beberapa minggu saya harus memperbarui beberapa hal pada artikel (produk). Ketika saya melakukan ini dengan sabun lagi, butuh durasi yang sama. Ketika saya melakukan pembaruan toko tidak dapat digunakan. Contoh permintaan dan respons ada di sini: https://pastebin.com/aqnMJk98 https://pastebin.com/UAh0h8Zz
Server saya memiliki CPU 12 inti, RAM 24 GB, dan SSD. Ini menjalankan Ubuntu 16.04 dengan Apache2 PHP7-fpm dan MYSQL.
Ketika saya menonton proses pembaruan, saya melihat bahwa 5 core dengan MySQL 100% PHP bekerja sedikit dan sisanya idle. Ram hanya digunakan dalam jumlah kecil iotop
mengatakan bahwa SSD saya bosan.
Saya menyaksikan kinerja basis data dan melihat bahwa Magento melakukan proses penambahan ribuan perintah ke basis data. Apakah ini ok?
Ketika saya memperbaruinya dengan impor CSV Magento itu jauh lebih cepat.
Apa yang bisa saya lakukan untuk mempercepat Magento2 ini? Dalam situasi ini tidak mungkin bekerja dengan baik dengan toko ini.
sumber
Jawaban:
Impor massal
kuncinya adalah menggunakan impor batch, seperti yang Anda sebutkan:
Pertimbangkan untuk memikirkan kembali API SABUN Anda dan mengubahnya menjadi mode massal, mis. Anda dapat membuat beberapa middleware yang akan menerima data produk Anda dan menghasilkan file csv yang nantinya dapat diumpankan ke Magento.
Ada beberapa ekstensi dari pihak ke-3 yang membantu.
Saran kinerja umum
Anda dapat mencoba mempercepat Magento sendiri, tetapi Anda akan mendapatkan ~ 1-10% peningkatan dari setiap peningkatan, ketika Anda melakukan banyak dari itu manfaatnya dikalikan:
Jika semua hal di atas dilakukan dan Anda memerlukan lebih banyak kinerja:
sumber
Masalahnya di sini adalah, bahwa Panggilan SOAP sangat mahal. Jika Anda menjalankan Permintaan SOAP untuk menambah / mengedit / menghapus suatu produk, Magento harus bergabung dengan banyak tabel untuk mendapatkan semua informasi yang diperlukan. Perilaku ini dalam kombinasi dengan PHP itu sendiri membuatnya lambat untuk jumlah produk atau data yang ingin Anda proses.
Magento sendiri merekomendasikan cluster server 5 node (1 x DB, 4 x Webserver) untuk menangani lalu lintas.
Saya akan merekomendasikan penskalaan secara horizontal, misalnya dengan AWS. Ini mungkin memiliki dampak yang lebih besar pada bisnis Anda, tetapi IMHO Anda tidak akan dapat mengubah Magento agar kinerjanya lebih baik.
Dalam AWS, Anda harus menggunakan Fitur grup autoscaling yang bertanggung jawab atas jumlah server yang Anda luncurkan. Setiap kali Anda menambahkan data, ada server baru yang diluncurkan untuk menangani tekanan. Hal yang sama dapat dilakukan dengan AWS RDS (Layanan DB) sangat mudah dan cepat.
Jika AWS itu bukan opsi sama sekali, Anda dapat mencoba mengubah Magento dan PHP. Saya akan merekomendasikan untuk memeriksa pengaturan untuk:
sumber
Tautan ini menjelaskan cara mengubah penggunaan memori MySQL. Karena Anda memiliki begitu banyak RAM, Anda dapat mengambil manfaat dari mengalokasikan lebih banyak ke MySQL. Itu mungkin solusi yang lebih mudah dan lebih murah ($) yang membangun server database khusus.
Anda juga dapat menemukan utilitas MySQL Workbench berguna untuk membantu Anda dengan mengutak-atik ini dan juga memantau apa yang dilakukan MySQL secara umum. Utilitas ini dibuat oleh Oracle / MySQL; itu bukan beberapa aplikasi shareware acak.
sumber