Jõudlus Drupal Hooldus

Drupal jõudluse optimeerimine — praktilised sammud

🎧 Kuula kõiki artikleid järjest

Drupal suudab teenindada väga suure liiklusega veebisaite. Kui sait on aeglane, on põhjus tavaliselt konfiguratsioonis, mitte platvormis endas.

Kas Drupal on aeglane?

See on üks levinumaid küsimusi Drupaliga seotud aruteludes.

Lühike vastus: ei.

Drupal teenindab igapäevaselt miljoneid kasutajaid üle maailma, sealhulgas ülikoolide, riigiasutuste ja rahvusvaheliste organisatsioonide veebiplatvorme.

Kui Drupal-sait on aeglane, on põhjus tavaliselt üks järgmistest:

  • vahemälu ei tööta korrektselt;
  • andmebaasipäringud on ebaefektiivsed;
  • pildid on optimeerimata;
  • server on valesti seadistatud;
  • kohandatud kood tekitab pudelikaelu.

Hea uudis on see, et enamik neist probleemidest on lahendatavad.

Alusta mõõtmisest

Enne muudatuste tegemist tuleb teada, mis on tegelik probleem.

Kontrollimiseks sobivad näiteks:

  • Google PageSpeed Insights;
  • Lighthouse;
  • WebPageTest;
  • GTmetrix;
  • Google Search Console Core Web Vitals raport.

Oluline on eristada:

  • serveri vastuse aega;
  • lehe renderdamise aega;
  • piltide laadimise aega;
  • JavaScripti mõju kasutajakogemusele.

Kõik aeglased veebid ei ole aeglased samal põhjusel.

Kiht 1: Drupali vahemälu

Drupal sisaldab mitut sisseehitatud vahemälukihti.

Need peaksid tootmiskeskkonnas olema alati sisse lülitatud.

Internal Page Cache

Salvestab anonüümsetele kasutajatele genereeritud HTML-lehed.

Kui see puudub, peab Drupal iga külastuse korral kogu lehe uuesti koostama.

Dynamic Page Cache

Salvestab lehe osad, mis ei sõltu konkreetsest kasutajast.

See parandab märgatavalt sisselogitud kasutajate jõudlust.

BigPipe

BigPipe saadab lehe kiiresti brauserisse ja täidab personaalsed komponendid hiljem.

Kasutaja näeb sisu kiiremini isegi siis, kui osa lehe elemente alles genereeritakse.

See parandab eelkõige tajutavat jõudlust.

Kiht 2: Redis ja Varnish

Kui liiklus kasvab, jääb ainult Drupali sisemisest vahemälust väheks.

Redis

Redis salvestab vahemälu mällu.

Võrreldes andmebaasipõhise vahemäluga tähendab see:

  • vähem SQL-päringuid;
  • kiiremaid vastuseid;
  • väiksemat serverikoormust.

Keskmise ja suure liiklusega Drupal-saitidel on Redis sisuliselt standardlahendus.

Varnish

Varnish töötab Drupalist eespool.

Kui külastaja avab lehe, saab Varnish vastata otse vahemälust ilma Drupalit käivitamata.

Tulemuseks on:

  • väiksem serverikoormus;
  • lühem vastuseaeg;
  • parem skaleeritavus.

Anonüümse liikluse puhul annab Varnish sageli kõige suurema jõudlusvõidu.

Kiht 3: CDN

CDN ehk Content Delivery Network aitab staatilisi faile serveerida kasutajale lähemast asukohast.

Tüüpilised kandidaadid:

  • pildid;
  • CSS-failid;
  • JavaScript;
  • fondid.

Levinud lahendused:

  • Cloudflare;
  • Fastly;
  • Amazon CloudFront.

Rahvusvaheliste veebide puhul võib CDN vähendada laadimisaega märgatavalt.

Kiht 4: Andmebaasi optimeerimine

Paljud Drupal jõudlusprobleemid algavad andmebaasist.

Aeglaste päringute logi

MySQL või MariaDB slow query log näitab päringuid, mis võtavad liiga kaua aega.

Sageli leitakse sealt:

  • keerukad Views-vaated;
  • puuduvad indeksid;
  • halvasti kirjutatud kohandatud päringud.

Indeksid

Kui sisu filtreeritakse sageli:

  • kuupäeva järgi;
  • kategooria järgi;
  • staatuse järgi;

tasub kontrollida, kas vastavad väljad on indekseeritud.

Indeksite puudumine võib muuta suure andmemahu korral päringud kordades aeglasemaks.

Logide puhastamine

Drupal kogub pidevalt logikirjeid.

Aastate jooksul võivad logitabelid kasvada väga suureks.

Regulaarne puhastamine aitab hoida andmebaasi väiksema ja kiiremana.

Kiht 5: Pildid

Paljud aeglased veebid ei ole tegelikult serveri tõttu aeglased.

Need on aeglased suurte piltide tõttu.

Kontrolli:

  • kas kasutatakse WebP formaati;
  • kas pildid on õiges mõõdus;
  • kas lazy loading töötab;
  • kas pildistiilid genereeritakse automaatselt.

Sageli annab piltide optimeerimine suurema võidu kui serveri uuendamine.

Kiht 6: CSS ja JavaScript

Drupal võimaldab:

  • CSS agregatsiooni;
  • JavaScripti agregatsiooni;
  • failide minifitseerimist.

Tootmiskeskkonnas peaksid need olema sisse lülitatud.

Mida vähem HTTP-päringuid brauser tegema peab, seda kiiremini leht avaneb.

Samuti tasub regulaarselt kontrollida, kas saidile pole kogunenud JavaScripti teeke, mida enam ei kasutata.

Kiht 7: PHP ja server

OPcache

PHP OPcache hoiab kompileeritud PHP-koodi mälus.

Ilma selleta peab server iga päringu korral kogu koodi uuesti töötlema.

Tootmiskeskkonnas on OPcache praktiliselt kohustuslik.

PHP versioon

Iga uus PHP versioon toob tavaliselt kaasa jõudlusparandusi.

Näiteks võib PHP 8.3 olla märgatavalt kiirem kui vanad PHP 7.x versioonid.

Lisaks jõudlusele paraneb ka turvalisus.

HTTP/2 ja HTTP/3

Kaasaegsed veebiserverid peaksid kasutama vähemalt HTTP/2 protokolli.

See võimaldab:

  • paralleelseid päringuid;
  • väiksemat latentsust;
  • kiiremat ressursside laadimist.

Kuidas leida tegelik pudelikael?

Keerukamate probleemide korral ei piisa enam PageSpeedi raportist.

Kasulikud tööriistad on:

  • Blackfire;
  • New Relic;
  • XHProf;
  • Tideways.

Need näitavad täpselt:

  • milline PHP-funktsioon aega kulutab;
  • milline päring on aeglane;
  • milline moodul tekitab koormust.

Ilma mõõtmiseta on optimeerimine sageli lihtsalt oletamine.

Levinumad põhjused, miks Drupal aeglane tundub

Praktikas korduvad samad probleemid:

  • vahemälu on kogemata välja lülitatud;
  • Redis puudub;
  • Varnish puudub;
  • pildid on liiga suured;
  • Views teeb keerukaid päringuid;
  • kohandatud moodul tekitab liigseid andmebaasipäringuid;
  • server kasutab aegunud PHP versiooni.

Harva on probleem Drupalis endas.

Kokkuvõte

Drupal jõudluse optimeerimine algab mõõtmisest, mitte serveri vahetamisest.

Enamasti annab suurima tulemuse:

  1. korrektne vahemälu;
  2. Redis või Varnish;
  3. piltide optimeerimine;
  4. andmebaasi korrastamine;
  5. kaasaegne PHP versioon;
  6. jõudlusprobleemide regulaarne monitooring.

Hästi seadistatud Drupal võib teenindada väga suurt liiklust kiirelt ja stabiilselt. Kui sait on aeglane, on peaaegu alati võimalik leida konkreetne põhjus ning see kõrvaldada ilma kogu platvormi ümber ehitamata.

Kui soovid teada, mis sinu Drupal-saidi aeglaseks teeb, aitab tehniline audit tuvastada peamised kitsaskohad ja nende mõju tegelikule kasutajakogemusele.

Kaido Toomingas, WebPro tehniline juhtWebPro Company OÜ Tehniline juht: Kaido Toomingas

Vajad Drupal abi?

Kui artikkel puudutab sinu olukorda, ei pea kõike lõpuni lugema. Sinuga suhtleb päris inimene ja aitab järgmise sammuni jõuda.