Persyaratan Magento 2.x PHP memory_limit

11

Saya perhatikan bahwa manual Magento 2.1 merekomendasikan memory_limit=2Gdiphp.ini . Itu adalah jumlah memori yang gila, bukankah memori itu diizinkan per permintaan HTTP? Saya ragu ada penyedia hosting yang menyediakan jumlah memori untuk skrip PHP, dan tentu saja membuat Magento tidak layak untuk shared hosting.

Apakah itu mungkin jumlah untuk pengaturan dan migrasi? Apakah jumlah itu benar-benar diperlukan untuk produksi?

Saya juga menemukan dalam dokumentasi:

Set the PHP memory limit.
Our detailed recommendations are: 
Compiling code or deploying static assets, 756M 
Installing and updating Magento components from Magento Marketplace, 2G 
Testing, 2G

Itu tidak menyebutkan rekomendasi produksi. Apa yang direkomendasikan untuk produksi?

Tandai
sumber

Jawaban:

8

Seperti yang dijelaskan oleh cuplikan dokumentasi yang Anda temukan, 2Gadalah batas memori untuk mencakup semua kasus penggunaan yang mungkin. Beberapa operasi (terutama operasi baris perintah seperti pengaturan, pengujian, dan kompilasi) dapat mengambil sejumlah besar memori tergantung pada ukuran dan kompleksitas instalasi Anda.

Beberapa hal yang perlu diperhatikan:

  1. memory_limitadalah jumlah maksimum memori yang diminta untuk diambil oleh PHP sebelum akan diakhiri. Ini bukan jumlah total memori yang akan diambil setiap permintaan. Dalam praktiknya, sebagian besar permintaan yang menghadap ke depan akan memakan lebih sedikit memori (mungkin 60 MB atau kurang untuk sebagian besar halaman, kategori, produk CMS), dengan beberapa pencilan (checkout) mengambil beberapa kali lebih banyak tergantung pada integrasi, penyesuaian, dll.
  2. Beberapa server memungkinkan Anda untuk mengatur batas memori yang berbeda untuk permintaan web versus baris perintah. Jika demikian, Anda harus memiliki batas CLI 2G, dan batas web 768Matau kurang.
  3. Magento sendiri mencoba untuk menegakkan batas standar 768M across-the-board, melalui aturan dalam .htaccessdan pub/.htaccess: php_value memory_limit 756M, dan di .user.ini:memory_limit = 756M
  4. Halaman ' persyaratan tumpukan teknologi ' yang mungkin Anda lihat tentang minimum 2 GB berbicara tentang memori sistem total , bukan batas memori PHP. Jika Anda mencoba menjalankan Magento2 di server pribadi virtual dengan kurang dari 2 GB RAM (termasuk swap), Anda akan memiliki waktu yang buruk.
  5. Lingkungan khusus akan selalu lebih baik daripada shared hosting, tetapi Magento2 bekerja pada shared hosting. Magento bekerja secara luas dengan beberapa penyedia hosting umum termasuk GoDaddy untuk menjadikan instalasi satu-klik menjadi kenyataan. Ada juga host khusus Magento seperti Nexcess yang memberikan tingkat layanan bersama yang lebih tinggi dengan beberapa dolar lebih banyak.
Ryan Hoerr
sumber
Mengenai poin 4: kutipan OP dari dokumen "Diperlukan Pengaturan PHP", bukan persyaratan tumpukan teknologi. devdocs.magento.com/guides/v2.1/install-gde/prereq/… Mereka merekomendasikan pengujian dan pemasangan dengan memory_limit 2GB.
tak terbatas
Saya ingin menambahkan .user.inike daftar file yang Magento gunakan / buat untuk menegakkan batas ini. Baik di root dan di pub/.
Bart Friederichs
Lingkungan 2G yang disarankan jauh berbeda dari 2G per permintaan! Saya tidak bisa membayangkan yang terakhir layak untuk situs yang sibuk. Dan bahkan jika baris perintah operasi PHP mengkonsumsi 2G itu kode yang sangat tidak efisien.
MarkE