Wymagania Magento 2.x PHP memory_limit

11

Zauważyłem, że instrukcja Magento 2.1 zaleca się memory_limit=2Gwphp.ini . To szalona ilość pamięci, czy pamięć nie jest dozwolona na żądanie HTTP? Wątpię, czy istnieje jakikolwiek dostawca hostingu, który zapewnia taką ilość pamięci dla skryptów PHP, a na pewno sprawia, że ​​Magento nie nadaje się do wspólnego hostingu.

Czy to może być kwota na konfigurację i migrację? Czy ta ilość jest naprawdę potrzebna do produkcji?

Znalazłem również w dokumentacji:

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

Nie wspomina o zaleceniach produkcyjnych. Co jest zalecane do produkcji?

MarkE
źródło

Odpowiedzi:

8

Jak wyjaśnia znaleziony fragment dokumentacji, 2Gjest to limit pamięci obejmujący wszystkie możliwe przypadki użycia. Niektóre operacje (szczególnie operacje wiersza polecenia, takie jak konfiguracja, testowanie i kompilacja) mogą zająć znaczną ilość pamięci w zależności od wielkości i złożoności instalacji.

Kilka rzeczy do zapamiętania:

  1. memory_limitto maksymalna ilość pamięci, jaką dane PHP może zająć przed jego zakończeniem. Nie jest to całkowita ilość pamięci, jaką zajmie każde żądanie. W praktyce większość żądań skierowanych do przodu zajmie znacznie mniej pamięci (prawdopodobnie 60 MB lub mniej dla większości stron, kategorii, produktów CMS), a niektóre wartości odstające (kasy) zajmą kilka razy więcej w zależności od integracji, dostosowania itp.
  2. Niektóre serwery pozwalają ustawić różne limity pamięci dla żądań internetowych w zależności od wiersza poleceń. Jeśli tak, powinieneś mieć limit CLI 2Gi limit sieci 768Mlub mniej.
  3. Sam Magento próbuje wymusić ograniczenie domyślne 768M całej liniową, poprzez zasadami .htaccessi pub/.htaccess: php_value memory_limit 756Mi w .user.ini:memory_limit = 756M
  4. Strona „ wymagań stosu technologii ”, którą prawdopodobnie widziałeś, dotycząca minimum 2 GB, mówi o całkowitej pamięci systemowej , a nie o limicie pamięci PHP. Jeśli spróbujesz uruchomić Magento2 na wirtualnym prywatnym serwerze z mniej niż 2 GB pamięci RAM (w tym swap), będziesz miał zły czas.
  5. Dedykowane środowisko zawsze będzie lepsze niż hosting współdzielony, ale Magento2 działa na hostingu współdzielonym. Magento intensywnie współpracował z niektórymi powszechnymi dostawcami hostingu, w tym z GoDaddy, aby instalacje za jednym kliknięciem stały się rzeczywistością. Istnieją również wyspecjalizowane w Magento hosty, takie jak Nexcess, które zapewniają wyższy poziom wspólnej usługi za kilka dolarów więcej.
Ryan Hoerr
źródło
W odniesieniu do punktu 4: cytat OP z dokumentu „Wymagane ustawienia PHP”, a nie wymagania dotyczące stosu technicznego. devdocs.magento.com/guides/v2.1/install-gde/prereq/… Zalecają przetestowanie i instalację przy użyciu 2 GB pamięci.
nieokreślony
Chciałbym dodać .user.inido listy plików używanych / tworzonych przez Magento w celu wymuszenia tego limitu. Zarówno w katalogu głównym, jak i w pub/.
Bart Friederichs,
Zalecane środowisko 2G znacznie różni się od 2G na żądanie! Nie mogę sobie wyobrazić, by ta ostatnia była odpowiednia dla ruchliwej strony. I nawet jeśli operacje PHP w wierszu poleceń zużywają 2G, co jest wyjątkowo nieefektywnym kodem.
MarkE