Jõudlus Drupal Hooldus

Miks Drupal muutub aja jooksul aeglaseks?

🎧 Kuula kõiki artikleid järjest

Paljud Drupal-saidid töötavad alguses kiiresti, kuid muutuvad aastate jooksul raskemaks. Põhjus ei ole tavaliselt Drupalis endas, vaid selles, kuidas platvormi aja jooksul hooldatakse, laiendatakse ja sisuga täidetakse.

Aeglus ei teki tavaliselt ühe muudatusega

Drupal-sait ei muutu aeglaseks üleöö.

Enamasti on tegemist järkjärgulise protsessiga:

  • lisandub rohkem sisu;
  • lisandub rohkem pilte ja faile;
  • paigaldatakse uusi mooduleid;
  • tehakse väikeseid erilahendusi;
  • lisatakse analüütika-, turundus- ja vestlusskripte;
  • vahemälu või serveri seadistus jääb ajale jalgu;
  • vanad lahendused jäävad uute kõrvale alles.

Iga üksik muudatus võib tunduda väike. Koos võivad need muuta saidi aeglasemaks, raskemini hallatavaks ja kulukamaks edasi arendada.

Sisu kasv mõjutab rohkem kui arvatakse

Suure organisatsiooni Drupal-sait ei ole staatiline brošüür.

Aastate jooksul lisanduvad:

  • uudised;
  • teenusekirjeldused;
  • dokumendid;
  • sündmused;
  • kampaanialehed;
  • vormid;
  • failid;
  • tõlked;
  • arhiivisisu.

Kui sisustruktuur ja vaated on hästi planeeritud, saab Drupal suure mahuga hakkama. Probleem tekib siis, kui sisu kasvab ilma arhiveerimis-, indekseerimis- ja haldusloogikata.

Näiteks võib aeglaseks muutuda:

  • uudiste nimekiri, mis pärib iga laadimisega liiga palju andmeid;
  • otsing, mille indeks ei ole õigesti seadistatud;
  • haldusvaade, mis näitab tuhandeid kirjeid ilma filtrite või lehekülgedeta;
  • menüü või taksonoomia, mis on kasvanud algsest loogikast suuremaks.

Drupal ei karda suurt sisu hulka. Küll aga vajab suur sisu korralikku arhitektuuri.

Toimetajate töö võib jõudlust tahtmatult mõjutada

Jõudlus ei ole ainult arendaja vastutus.

Toimetajate igapäevased valikud mõjutavad samuti saidi kiirust:

  • üles laaditakse väga suuri originaalpilte;
  • lisatakse PDF-e, mis on veebis kasutamiseks liiga mahukad;
  • kopeeritakse sisu koos liigse vormindusega;
  • kasutatakse liiga palju manustatud videoid või iframe'e;
  • luuakse kampaanialehti, kus on palju plokke ja skripte;
  • jäetakse vana sisu aktiivsena alles, kuigi seda enam ei kasutata.

See ei tähenda, et toimetajad teeksid midagi valesti. Sageli puuduvad lihtsalt head tööriistad ja piirangud.

Drupal saab toimetajaid aidata:

  • pildistiilidega;
  • automaatse pilditöötlusega;
  • sisestusväljade piirangutega;
  • selgete sisutüüpidega;
  • paremini planeeritud haldusvaadetega;
  • töövoogudega, mis suunavad sisu korras hoidma.

Hea admin-liides ei tee ainult sisestamist mugavamaks. See aitab vältida ka tehnilist ja sisulist segadust.

Vahemälu seadistus võib ajaga katki minna

Drupal kasutab mitut vahemälukihti. Õigesti seadistatuna on see üks põhjus, miks Drupal sobib ka suurematele ja suure liiklusega veebidele.

Probleemid tekivad siis, kui vahemälu:

  • on arenduse käigus välja lülitatud ja jääbki välja;
  • tühjeneb liiga tihti;
  • ei kehti dünaamilistele plokkidele;
  • ei tööta õigesti sisselogitud kasutajate jaoks;
  • ei jõua CDN-i või Varnishini;
  • ei arvesta õigesti eri keelte, rollide või kasutajakontekstidega.

Vahemälu ei ole üks lüliti, mille saab lihtsalt sisse lülitada.

Drupal-saitidel tuleb sageli eraldi hinnata:

  • Internal Page Cache'i;
  • Dynamic Page Cache'i;
  • render cache'i;
  • entity cache'i;
  • Redis'e kasutust;
  • Varnishi või muu pöördpuhvri kasutust;
  • CDN-i;
  • cache header'eid;
  • cache invalidation'i loogikat.

Kui need kihid ei tööta koos, võib sait tunduda aeglane isegi siis, kui server on võimas.

Moodulid ja erilahendused lisavad nähtamatut koormust

Drupal-projektides lisatakse aja jooksul sageli uusi mooduleid.

Põhjused on arusaadavad:

  • vaja on uut vormilahendust;
  • vaja on integratsiooni;
  • vaja on kampaaniafunktsiooni;
  • vaja on uut haldusvaadet;
  • vaja on sisu eksporti või importi;
  • vaja on eraldi õiguste loogikat.

Iga moodul ei ole probleem. Probleem tekib siis, kui mooduleid lisatakse ilma hilisema ülevaatuseta.

Aja jooksul võib saidile jääda:

  • mooduleid, mida enam ei kasutata;
  • mooduleid, mis dubleerivad üksteise funktsiooni;
  • mooduleid, mis lisavad igale lehele CSS-i või JavaScripti;
  • mooduleid, mis teevad raskeid andmebaasipäringuid;
  • kohandatud koodi, mille mõju jõudlusele pole mõõdetud.

Sama kehtib custom-moodulite kohta.

Erilahendus võib olla täiesti põhjendatud, aga kui see teeb iga lehe laadimisel mitu rasket päringut või väldib Drupali cache-süsteemi, hakkab kogu platvorm kannatama.

Kolmandate osapoolte skriptid muudavad kiire lehe aeglaseks

Sageli ei ole aegluse põhjus Drupal ise.

Lehe võivad aeglaseks teha:

  • analüütikatööriistad;
  • reklaamiskriptid;
  • turundusautomaatika;
  • vestlusaknad;
  • kaardid;
  • videopleierid;
  • sotsiaalmeedia vidinad;
  • nõusolekuhaldustööriistad.

Need lisatakse tihti ärilise või kommunikatsioonivajaduse tõttu. Tehniliselt tähendab see aga, et kasutaja brauser peab laadima ja töötlema rohkem väliseid faile.

Mõju võib olla eriti nähtav mobiilis.

Kui leht avaneb visuaalselt kiiresti, aga nupud ja vormid reageerivad viivitusega, võib põhjus olla JavaScripti koormuses. See mõjutab otseselt kasutajakogemust ja Core Web Vitals näitajaid.

Google'i Core Web Vitals dokumentatsioon (avaneb uues aknas) kirjeldab neid näitajaid kasutajakogemuse mõõdikutena, mitte ainult tehnilise skoorina. Seetõttu tasub Drupali jõudluse puhul vaadata korraga serverit, vahemälu, pilte ja brauseris töötavat JavaScripti.

Haldusliides võib muutuda aeglaseks enne avalikku lehte

Drupal-saitide puhul märgatakse sageli esmalt avaliku lehe kiirust.

Aga suure organisatsiooni jaoks on sama oluline ka haldusliidese jõudlus.

Kui toimetajal kulub iga sisulehe avamiseks mitu sekundit, mõjutab see igapäevast tööd. Kui nimekirjad, filtrid ja tõlkevaated on aeglased, muutub sisu haldamine tüütuks ja veaohtlikuks.

Levinud põhjused:

  • liiga suured haldusvaated;
  • filtreerimata sisuloendid;
  • keerulised rolli- ja õiguskontrollid;
  • liiga palju välju ühes sisutüübis;
  • halvasti optimeeritud entity reference väljad;
  • kohandatud admin-plokid, mis teevad raskeid päringuid;
  • puuduv või valesti seadistatud cache sisselogitud kasutajatele.

Avalik veeb võib olla vahemälu tõttu kiire, kuid haldusliides aeglane. Sellisel juhul ei piisa ainult PageSpeedi vaatamisest.

Majutus, PHP ja andmebaas vananevad koos saidiga

Kui Drupal-sait töötab mitu aastat, muutub ka tehniline keskkond.

Probleeme võivad tekitada:

  • aegunud PHP versioon;
  • liiga väike PHP mälu limiit;
  • seadistamata OPcache;
  • aeglane andmebaas;
  • puuduv Redis;
  • nõrk failisüsteemi jõudlus;
  • cron'i ebaregulaarne töö;
  • varukoopiate või logide kasv samas keskkonnas;
  • server, mis sobis väiksemale saidile, aga mitte tänasele mahule.

Majutuse vahetamine ei ole alati esimene lahendus. Sageli annab parema tulemuse olemasoleva keskkonna ülevaatus ja õigete kitsaskohtade parandamine.

Samas tuleb tunnistada: kui sait on kasvanud, aga tehniline keskkond on jäänud samaks, võib jõudluslagi ette tulla.

Aegluse taga on sageli hooldusvõlg

Performance-probleemid on tihti hooldusvõla nähtav sümptom.

Hooldusvõlg tähendab, et väiksed tegemata tööd kogunevad:

  • mooduleid ei uuendata regulaarselt;
  • mittevajalikud moodulid jäävad alles;
  • konfiguratsiooni ei korrastata;
  • logid ja veateated jäävad tähelepanuta;
  • andmebaasitabeleid ei vaadata üle;
  • vanu integratsioone ei eemaldada;
  • pildihaldus jääb juhuslikuks;
  • jõudlust ei mõõdeta regulaarselt.

Kui hooldus on ainult turvauuenduste paigaldamine, jääb osa probleemidest märkamata.

Hea Drupal-hooldus peaks sisaldama ka jõudluse, sisu mahu, vahemälu, vigade ja kasutuskogemuse jälgimist.

Kuidas aru saada, mis saidi tegelikult aeglaseks teeb?

Aeglase Drupali parandamine ei peaks algama juhuslikest moodulitest ega serveri suurendamisest.

Kõigepealt tuleks vastata küsimustele:

  • kas aeglane on avalik veeb, haldusliides või mõlemad;
  • kas probleem esineb kõigil lehtedel või ainult kindlatel vaadetel;
  • kas aeglus tuleb serverist, andmebaasist, piltidest või JavaScriptist;
  • kas vahemälu töötab anonüümsete ja sisselogitud kasutajate jaoks;
  • kas aeglus tekkis pärast kindlat muudatust;
  • kas probleem on seotud liikluse, sisu mahu või väliste teenustega;
  • kas Core Web Vitals näitab kasutajate tegelikku probleemi.

Alles siis on mõistlik otsustada, mida muuta.

Mõnikord piisab piltide ja cache'i korrastamisest. Mõnikord tuleb optimeerida Views-päringuid. Mõnikord tuleb ümber teha osa haldusliidesest. Mõnikord on vaja serveri, PHP või andmebaasi seadistust muuta.

Mida regulaarselt kontrollida?

Drupal-sait, mis on avaliku sektori, haridusasutuse või suurema organisatsiooni jaoks oluline töövahend, vajab perioodilist ülevaatust.

Praktiline kontrollnimekiri:

  • kas Drupal core ja moodulid on ajakohased;
  • kas kasutamata moodulid on eemaldatud;
  • kas vahemälu töötab õigesti;
  • kas Redis, Varnish või CDN on vajadusel kasutusel;
  • kas pildid väljastatakse sobivas suuruses ja formaadis;
  • kas haldusvaated on toimetajatele kiired;
  • kas cron töötab regulaarselt;
  • kas andmebaasis on aeglaseid päringuid;
  • kas logides korduvad vead;
  • kas kolmandate osapoolte skriptid on põhjendatud;
  • kas Core Web Vitals näitajad püsivad korras;
  • kas serveri PHP, mälu ja OPcache seadistus vastab saidi mahule.

Selline kontroll ei pea alati tähendama suurt arendusprojekti. Sageli aitab regulaarne tehniline hooldus vältida seda, et probleemid kuhjuvad korraga nähtavaks.

Kokkuvõte

Drupal ei muutu aeglaseks lihtsalt sellepärast, et sait on vana.

Aeglaseks muutub Drupal siis, kui:

  • sisu kasvab ilma arhitektuurita;
  • pildid ja failid lähevad kontrolli alt välja;
  • mooduleid lisatakse, aga ei vaadata üle;
  • custom-kood ei arvesta cache'i ja päringutega;
  • kolmandate osapoolte skriptid kuhjuvad;
  • haldusliides jääb toimetajate töömahu jaoks optimeerimata;
  • majutus ja PHP seadistus ei vasta enam saidi vajadustele;
  • hooldus keskendub ainult hädapärastele parandustele.

Hea uudis on see, et enamik jõudlusprobleeme on leitavad ja parandatavad.

WebPro aitab Drupal-saitide tehnilise auditi, hoolduse ja Drupal arendusega, et aegluse põhjus ei jääks oletuseks. Mõõdame, leiame kitsaskohad ja parandame need viisil, mis toetab nii kasutajaid, toimetajaid kui ka platvormi pikaajalist töökindlust.

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.