Molnwebbplatsen är långsam

I den här artikeln ges rekommendationer om hur du kan göra din Adobe Commerce-webbplats på molninfrastrukturen bättre under belastad trafik och hur du kan minska belastningen.

Berörda versioner och utgåvor

  • Adobe Commerce om molninfrastruktur, alla versioner

Problem

Steg som ska återskapas

  1. Besök Adobe Commerce store.
  2. Bläddra bland en kategorisida.
  3. Lägg en produkt i kundvagnen.

Förväntat resultat

Webbplatsen är responsiv och det går snabbt att lägga en produkt i kundvagnen.

Faktiskt resultat

Webbplatsen är långsam eller så är kategorisidorna snabba men kundvagnssidan är långsam.

Felsökning av steg och lösningar

Följ de här stegen för att spåra orsaken till den långsamma prestandan och åtgärda den. Du kan växla det första och det andra steget, men du kan bara fortsätta med att blockera IP-adresser om optimeringen av cacheinställningarna inte hjälper.

  1. Kontrollera cacheträffhastigheten för sidor med hög trafik och minska mängden data som uppdateras mycket.
  2. Kontrollera den totala träfffrekvensen för platscachen och verifiera den allmänna cachen/snabbkonfigurationen.
  3. Identifiera de webbklienter som orsakar den höga serverbelastningen och blockera IP:n som orsakar den höga belastningen.

I följande stycken finns mer information för varje steg.

Steg 1: Kontrollera cacheträffhastigheten för sidor med hög trafik

Det första steget till att åtgärda en webbplats som störs av stor trafik är att se till att sidor med störst trafik, som butikens hemsida och kategorisidor på den översta nivån cachelagras korrekt.

Du kan ta reda på cacheminnets träfffrekvenser för de här sidorna genom att granska X-Cache HTTP-rubriker med cURL, vilket beskrivs i Kontrollera cacheminnet med cURL i Snabbdokumentation. Du kan också kontrollera samma rubriker på nätverksfliken i utvecklarverktygsfältet i din favoritwebbläsare.

I allmänhet respekterar svarshuvuden som kommer från programmet, men om alla sidhuvuden är inställda på "cachelagra inte" och för sidan "förfaller tidigare" kan du inte cachelagra sidan.

WARNING
Observera att Snabb ändrar svarshuvuden, så om du kontrollerar huvud-URL:en med cURL eller webbläsaren visas inte nödvändigtvis vilka huvuden som skickas av programmet. Det är vanligt att Fastly själv svarar på webbläsare med rubriker utan cache, men att själva webbprogrammet tillåter cachelagring och att Fast cachelagrar objektet ordentligt. Därför kommer rubrikinformationen "cache-control" och "pragma" inte att vara användbar i det här fallet.

Felsökning för sidor med hög trafik

Om indexsidan har en låg träfffrekvens kan du åtgärda den genom att minska mängden data som är starkt uppdaterade på sidan.

Steg 2: Kontrollera den totala träfffrekvensen för platscache

Så här kontrollerar du den totala cacheminnesträffhastigheten:

  1. Få snabbt inloggningsuppgifter för din Adobe Commerce i molninfrastrukturmiljö.

  2. Kör följande Linux/macOS cURL-kommando för att kontrollera träffhastigheten för din webbplats under de senaste 30 minuterna, och ersätt och med värdena för dina snabbinloggningsuppgifter:

    curl -H "Fastly-Key: " https://api.fastly.com/stats/service//field/hit_ratio?by=minute | json_pp

    Du kan också kontrollera tidigare träfffrekvenser under den sista dagen eller månaden genom att ändra frågealternativet för tidsintervall från ?by=minute till ?by=hour eller ?by=day. Mer information om hur du får status för snabbcache finns i Frågealternativ i dokumentationen Snabbt.

    Alternativet | json_pp skriver ut JSON-svarsutdata med verktyget json_pp. Om du får ett_'json_pp not found'_-fel installerar du verktyget json_pp eller använder ett annat kommandoradsverktyg för JSON-utskrift. Du kan också ta bort parametern | json_pp och köra kommandot igen. JSON-svarsutdata är inte formaterade, men du kan rensa upp det genom en JSON-finjustering.

En träfffrekvens över 0,90 eller 90 % anger att helsidescachen fungerar.

En träfffrekvens under 0,85 eller 85 % kan tyda på ett platskonfigurationsproblem, eller så har du ett tillägg från tredje part installerat som inte tillåter att innehållet cachelagras.

Felsökning av den totala träfffrekvensen för cache

  1. Identifiera när träfffrekvensen började sjunka med hjälp av träffstatistik per timme och dag. Om träfffrekvensen plötsligt skulle minska vid samma tidpunkt som du distribuerade en ändring till din webbplats bör du överväga att återställa ändringen tills webbplatsinläsningen går ner.
  2. Kontrollera konfigurationen i Commerce Admin, under Lagrar > Konfiguration > Avancerat > System > Helsidescache. Kontrollera att värdet TTL för publikt innehåll inte är för lågt.
  3. Kontrollera att du har överfört VCL-kodfragment.
  4. Om du använder anpassade VCL-kodfragment kan du felsöka dem för korrekt användning av åtgärderna "pass" eller "pipe": de bör användas med försiktighet och i alla lägen med något slags tillstånd. Mer tips finns i Anpassade snabbvalsbaserade VCL-kodfragment i utvecklardokumentationen.

Steg 3: Identifiera de webbplatser som orsakar hög serverbelastning

Du kan använda någon av följande metoder för att få information om IP-adresserna som har åtkomst till din Adobe Commerce-butik.

  • Kontrollera HTTP-åtkomstloggarna via en SSH-session.
  • Kontakta Adobe Commerce support för att få en lista över IP-adresser som orsakar hög belastning på webbplatsen.

Kontrollera HTTP-åtkomstloggarna

Om du vill visa platsens åtkomstlogg kör du följande kommando från den lokala utvecklingsmiljön:

magento-cloud log access

Visa fler rader med

--lines

alternativ, till exempel:

magento-cloud log access --lines=500

Du kan visa den här loggen och kontrollera om en stor del av begäranden kommer från en viss IP-adress. Ett annat sätt är att använda awk, sort och uniq för att automatiskt räkna de oftast förekommande IP-adresserna i loggen, enligt följande:

magento-cloud log access --lines 2000 | awk '{print $1}' | sort | uniq -c | sort
  -nr

Om

magento-cloud log

kommandot fungerar inte, du kan ansluta till fjärrservern med SSH och kontrollera loggfilen på /var/log/access.log

När du har identifierat IP-adresserna som orsakar hög serverbelastning kan du blockera dem genom att konfigurera ett IP-blockeringslista från Commerce Admin-panelen, under Lager > Konfiguration > AVANCERAT > System > Fullständig sidcache > Snabbkonfiguration > Blockera.

Om du inte kan komma åt din administratör på grund av stor belastning kan du använda API:t Fastly för att konfigurera blockeringsreglerna:

  1. Skapa åtkomstkontrollistan enligt beskrivningen i Arbeta med åtkomstkontrollistor med API:tSnabbt.

  2. I avsnittet recv skapar du ett VCL-fragment med följande innehåll, som har ersatt ACL_NAME_GOES_HERE med namnet på den åtkomstkontrollista som skapades i föregående steg:

    code language-none
    if( req.http.Fastly-Client-IP ~ ACL_NAME_GOES_HERE ) {
    error 403 "Forbidden";
    }
    

Mer information om att blockera IP-adresser finns i guiden för Snabb Adobe Commerce-modul i GitHub.

recommendation-more-help
8bd06ef0-b3d5-4137-b74e-d7b00485808a