Magento 2.2 często bardzo wolno, 100% użycie procesora po instalacji: aktualizacja

12

Obecnie działam Magento 2.2, php7, Apache2na Amazon AWS EC2 c4.largeinstancji, ale nawet instancje t2.micro są zwykle w porządku, gdy używam jej jako serwera programistycznego.

Z jakiegoś powodu co jakiś czas po uruchomieniu Instalatora: uaktualnij po zaktualizowaniu jednego z plików instalacyjnych w jednym z moich modułów niestandardowych lub po zainstalowaniu modułu innej firmy, mój serwer będzie bardzo wolny, pozostając przy 100% mocy procesora za każdym razem, gdy spróbuję aby załadować stronę, ładowanie strony zajmuje co najmniej 1 minutę i pozostanie na poziomie 25% zużycia procesora, gdy strony nie będą ładowane. Wpływa tylko na stronę magento, pod którą nazwałem setup: upgrade, strony innych instalacji magento na tym samym serwerze będą nadal ładować się z normalną prędkością.

Czasami problem został rozwiązany przez usunięcie właśnie zaktualizowanego modułu, zrestartowanie serwera, a następnie ponowną instalację modułu bez żadnych zmian w kodzie, czasami druga konfiguracja: aktualizacja rozwiązuje problem, a czasami wydaje się, że jedynym sposobem na jego naprawienie jest przez całkowitą ponowną instalację Magento 2i modułów.

Zdarzyło mi się to Magento 2.1.6, 2.1.8, 2.1.9i na 2.2różnego rodzaju kombinacjach tematów i modułów, z którymi nikt inny nie wydaje się mieć żadnych problemów z domyślnym trybem programisty i produkcji.

EDYCJA: Ważna uwaga
Jeśli masz ten problem i podobnie jak ja jesteś pewien, że nigdy nie wyłączyłeś swoich pamięci podręcznych, istnieje obecnie znany problem (Magento 2.3), w którym bieganie composer updateczasami wyłącza wszystkie twoje pamięci podręczne. Więc nawet jeśli uważasz, że Twoje pamięci podręczne są włączone, warto je dwukrotnie sprawdzić.

Kaascroissant
źródło
c4.large CPU 2 RAM 3,75 - jest to absolutnie normalne obciążenie. jeśli masz jakieś problemy z kodem lub w trybie programisty.
MagenX
Mój problem polega na tym, że nie ma problemów z kodem i nawet w trybie programisty nie sądzę, że ładowanie pojedynczej strony w dokładnie takiej samej konfiguracji, jaką zajmuje mniej niż pół sekundy, zajmuje mikro serwerowi. W 99% przypadków nie ma problemów i wszystko jest niezwykle szybkie, ale najwyraźniej losowo cała instalacja się psuje i nic się już nie ładuje, dopóki nie zostanie ponownie zainstalowana bez żadnych zmian w kodzie.
Kaascroissant
Sprawdź w trybie produkcyjnym, w trybie dewelopera js i css tworzone w locie, więc załadowanie zajmie trochę czasu.
Sunil Patel,
Wiem, ale tryb produkcyjny nadal ma ten sam problem, a gdy problem nie występuje, programista i tryb domyślny nadal bardzo szybko ładują strony, tylko czasami po uruchomieniu aktualizacji cały serwer jest spowalniany do przeszukiwania niezależnie od trybu.
Kaascroissant
jakieś rozwiązania? W obliczu tego samego ...
Jilco Tigchelaar,

Odpowiedzi:

20

TL; DR: Po prostu włącz pamięć podręczną konfiguracji.

Dłuższa historia:

Miałem ten sam problem i bawiłem się trochę.

Kroki do odtworzenia (w trybie programisty):

  1. pamięć podręczna: wyłącz
  2. setup: aktualizacja
  3. przeładuj frontend lub backend w przeglądarce

Podczas przeładowywania i monitorowania za pomocą htop, system „spamuje” niektóre procesy PHP, całkowicie wykorzystując wszystkie procesory. Wtedy zdałem sobie sprawę, że musi to zależeć od niektórych ustawień pamięci podręcznej. I zacząłem wyłączać niektóre z nich. Po wyłączeniu pamięci podręcznej konfiguracji problem natychmiast pojawił się ponownie.

Po wyłączeniu każdej pamięci podręcznej oprócz pamięci podręcznej konfiguracji wszystko znów działa szybko.

BuzzJoe
źródło
2
Czuję się teraz wyjątkowo głupio, ponieważ zmagam się z tym bardzo długo, ale nigdy nie przyszło mi do głowy, aby sprawdzić, czy pamięć podręczna jest włączona. Sam nigdy nie wyłączam pamięci podręcznej, ale z jakiegoś powodu wszystkie pamięci podręczne zostały wyłączone. Dziękuję Ci!
Kaascroissant
3
Zauważyłem w trybie domyślnym, jeśli uruchomisz Instalatora: aktualizacje pamięci podręcznej Magento są wyłączone
Dominic Xigen
4

Jeśli zaktualizowano przy użyciu kompozytora, prawdopodobnie buforowanie jest wyłączone. Dotyczy to wersji do 2.3.1. Po prostu włącz go, używając następującego kodu w folderze głównym Magento.

php bin/magento cache:enable

Abro
źródło
Z jakiegoś powodu po setup:upgrade wyłączeniu pamięci podręcznej. Bardzo dziwne, ale to dla mnie rozwiązało.
BugHunterUK
1

Mam taką samą sytuację jak ty, prowadzę:

php bin/magento setup:static-content:deploy -f

aby zmusić M2 do wdrożenia danych statycznych w trybie programisty w celu pominięcia długiego oczekiwania.

Ethan L.
źródło
0

bin / magento cache: flush bin / magento cache: enable

Robię te dwa kroki razem, jak tylko aktualizacja się zakończy. System jest nadal spamowany przez miliony zleceń cron, których nie mam pojęcia, co robią. Ale świat wrócił do pokoju po włączeniu bufora. Już rok 2020, dlaczego Magento wciąż jest niedojrzały.

AutoBeauty
źródło