Magento for designere optimalisering

Magento er en utrolig kraftig e-handelsplattform. I disse miniseriene lærer vi hvordan du kommer i gang med plattformen, lærer terminologiene, etablerer en butikk og alle relaterte aspekter av den, og lærer deg endelig å tilpasse den slik at den blir vår helt egen.

I denne siste delen vil vi takle en av de største klagerne folk har med Magento: dens ytelse. Vi vurderer en rekke forskjellige metoder du kan søke for å øke plattformen betydelig. Spent? La oss komme i gang!


The Full Series

  • Del 1: Installasjon og oppsett
  • Del 2: Produkter, Skatter, Kategorier, Betaling Gateways, etc.
  • Del 3: Theming
  • Del 4: Bygg temaet
  • Del 5: Bygg produktinformasjonssiden
  • Del 6: Bygg hjemmesiden, med et innholdsregulator
  • Del 7: Fabled Multi-Store Functionality
  • Del 8: Optimalisering

En rask oppskrift

I de siste delene tok vi et høyt nivå på hvordan Magento-temaer er satt sammen, komponentene som kjører det og hvordan alt fungerer sammen for å skape et fungerende tema sammen med en kortfattet titt på en rekke API-metoder som Magento utsettes for. Vi tok også en fokusert, trinnvis titt på hva Magento multi store er, hvordan det kan hjelpe deg og til slutt hvordan du setter det opp.


Hva skal vi gjøre i dag?

Magento er et område hvor brukerne klager konsekvent. Ikke mye er det sant, men det er mange forskjellige måter å forbedre ytelsen selvfølgelig på. I dag tar vi en titt på måter å drastisk forbedre ytelsen til Magento-installasjonen. Jeg vet at det høres interessant ut og du er kløe for å komme i gang.

Raskt notat før vi begynner skjønt. Flertallet av tweaks og / eller optimaliseringene nevnt her vil bare være de som nevner. Du bør sannsynligvis google rundt for implementeringen siden implementeringen selv vil kreve en rimelig størrelse opplæring i seg selv. Med det ut av veien, la oss komme i gang!


Velg riktig plattform

Dette er det mest kritiske aspektet av Magento-installasjonen. Magento kan kjøres på en delt vert, men pass opp, ytelsen kommer ikke til å være optimal. Magento krever virkelig mer kraft enn en kjøring av møllen som delte verten kan tilby, og det vil virkelig vise når du får det til å kjøre på en.

En VPS eller en dedikert server er mest ideell når det gjelder Magento. Og husk å ikke skimp på minnet fordi du vil trenge det. Massevis av det.


Aktiver caching

Å la Magento cache noen deler av koden sin er en av de få tingene du bør gjøre når du begynner å optimalisere en installasjon. Du trenger ikke aktivere caching for alt, men jeg vil foreslå layouter og blokkere HTML-utdata som essensielle. Med denne caching aktivert, kan du forvente at belastningstiden din skal reduseres drastisk, avhengig av størrelsen på nettstedet.

Husk at du må deaktivere caching mens du utvikler. Hvis du gjør endringer i koden din og det ikke reflekterer i frontenden, er caching den skyldige. Et slikt åpenbart punkt, men det har vært årsaken til så mye hår som trekkes under utviklingen.


Turboopplad cachen din

Når du har aktivert caching, kan du nå ta det et skritt videre. Magento caches informasjon ved hjelp av et filbasert lagringssystem. Selv om dette er den mest pålitelige måten, er det ofte når du vil ha rask fart. I disse tilfellene bør du se på å implementere et minnebasert caching-system.

Det finnes en rekke alternativer og folk har hatt stor suksess med dem. eAccelerator er mitt valg valg i disse dager. Bare husk å konfigurere det med tilstrekkelig minne, eller det kan være nødvendig å rense data i de mest uoppnåelige øyeblikkene.


php.ini Tweaks

Hvis du er på en VPS eller en dedikert server, se på deaktivere ikke-essensielle PHP-utvidelser. Magento trenger bare en håndfull som PDO_MySQL, så vær så snill å deaktivere de fremmede.

I tillegg er det to tweaks som vil resultere i bedre ytelse.

Som standard er PHP konfigurert til å bruke en absurd lav mengde minne. Du må øke dette. Du kan gjøre dette ved å legge til følgende linje i config-filen:

 php_value memory_limit 512M

Den andre er ved å justere realpath_cache verdi til det.

 realpath_cache_size = 1M realpath_cache_ttl = 86400

Apache Modul Tweaks

Dette er mer generelt enn en Magento-spesifikke, så jeg vil være kort her. Det finnes en rekke Apache-moduler som du må aktivere og / eller konfigurere for å forbedre ytelsen til butikken din.

Den første er mod_deflate. Dette gjør at utskriften fra serveren kan komprimeres drastisk, noe som fører til bedre ytelse. Definitivt en modul som må aktiveres.

For det andre, se på mod_expires. Denne modulen gjør det mulig for nettleseren å cache bestemte ressurser for en bestemt tidsperiode, slik at tilbake besøkende vil få en mer snappier opplevelse.

Og endelig, keepalives. Dette gjør det mulig for vedvarende tilkoblinger ved å skape langlivede økter, slik at flere forespørsler kan sendes via samme TCP-tilkobling. Dette hjelper når du har en rekke små eiendeler på siden din.


Oppuss indeksene dine

Husk å gjenoppbygge indeksene dine for tabellene gjennom bakenden med jevne mellomrom. Dette er et viktig punkt som vil resultere i en merkbar ytelsesforbedring til butikken din.

Husk at gjenoppbygging av indeksene er en veldig dyr affære, ressursvis og bør gjøres i løpet av off-timer. Å gjøre dette under enda moderat aktivitet i butikken din, vil degradere butikkens ytelse og responsevne betydelig.


Legg til en PHP Accelerator

PHP tolk må lese hver fil fra disk og kompilere den på alle forespørsler, noe som er ekstremt CPU sulten hvis du vurderer Magento-størrelsen. I slike tilfeller anbefales en PHP-akselerator som APC eller eAccelerator sterkt.

Verktøy som disse øker ytelsen til PHP-koden din betydelig ved å cache koden din i mellombytekode og serveres i stedet for å spørre tolken om å kompilere den hver gang.


In-Memory Partition for å redusere IO-sykluser

Dette er en forlengelse av punktet bemerket litt over. Magento lagrer mye informasjon [ikke bare DB] på serverens harddisk, som som du vet er den langsomste lenken i kjeden. Dette inkluderer kufferter, øktinformasjon og så videre. Hvis du vil forbedre ytelsen på dette området, er den beste måten å gå videre, å implementere et minnebasert filsystem for å sikre at alle dataene er lagret i minnet i stedet for kostbare samtaler til harddisken.

Siden vi ikke har plass her, vil jeg bare peke deg i riktig retning. Det du trenger å gjøre er å sette opp en tmpfs-partisjon som tar vare på økt- og hurtigkatalogene. Disse finner du under /var/www/domain.com/var/sessions/ og /var/www/domain.com/var/cache/ henholdsvis.


Aktiver flat frontend

Den flate frontend-katalogmodulen oppretter flere databasetabeller for å lagre data i et flatt / lineært format. Denne modulen er tilgjengelig for både kategori og produktdata, så vær så snill å aktivere den uavhengig avhengig av bruksvesken din.

Aktivering av denne modulen anbefales bare for store butikker. Butikker med en liten katalog bør definitivt holde seg borte, ettersom dette ikke kan gi nok av en ytelsesbølge for å garantere bruk og kan faktisk redusere ytelsen. Ta en nøye vurdert beslutning her.


Separat bakenden

Magento's back-end er betydelig mer ressurskrevende enn frontenden, siden den må håndtere mye mer informasjon. Og når butikken din har nådd en viss terskel med hensyn til antall produkter, si 5000, begynner det virkelig å beskatte serveren.

Å ha en dedikert admin-server kan bidra til at administrasjonspanelet får CPU-syklusene det trenger, med negativ innvirkning på ytelsen til resten av nettstedet.


Tweak Block Bruk

Standard Magento-temaet er et flott sted å starte fra, men er egentlig ikke den mest effektive. La meg utdype. Standardtemaet er utformet for å vise alle Magento-funksjonene, og binder derfor naturligvis alle whiz bang-funksjonene. Husk at Magento bygger en side gjennom å analysere oppsettet vi spesifiserer, og dermed genererer genereringstiden direkte koblingen til antall blokker du bruker på en side.

Så når du bygger ditt eget tema, unngå unødvendig komplekse oppsett, forenkle og / eller kombinere de mindre blokkene for å redusere CPU-syklusene som kreves for å gjengi sidens kode.


Legg til CSS / JS Intelligent

Magento har et elegant system på plass for å programmatisk inkludere / utelukke stilark og JavaScript-filer innenfor temaer. Mange temaforfattere ser ut til å omgå dette systemet ved å bare inkludere disse elementene manuelt i HTML-templeringen. Dette er feil.

Den riktige måten å inkludere disse eiendelene er vist nedenfor:

    

Ved å bruke koden ovenfor i layoutfilene, kombinerer Magento JS-filene i en enkelt fil og seres til nettleseren i en enkelt forespørsel.


Betjene statisk innhold effektivt

Reglene for optimalisering av vanlige nettsteder eller applikasjoner gjelder også her. Nettlesere begrenser vanligvis antall nedlastinger fra et domene til 2-5 som er svært begrensende når du laster et medierikt tema med en rekke små eiendeler. Det er en rekke enkle måter ut av dette

Det første og enkleste er noe du er kjent med: sprites. Ved hjelp av sprites kan du minimere antall samtidige forespørsler generert av temaet ditt.

Denne tilnærmingen kan ikke fungere i alle tilfeller. Hva om temaet ditt har en masse nifty skript, videoer og hva? Disse bør ikke være blokkert lastingen av resten av siden. I disse tilfellene må du bare opprette et underdomen for statiske eiendeler og peke Magento-installasjonen til ressursen.


Balanse din logging

Logging er viktig, men det er også kostbart siden det må skrive til disken. Magento, generelt, er veldig chatty når det kommer til å logge og snart blir du kneet dypt i loggfiler, de fleste av dem trenger du ikke.

Løsningen her er å deaktivere alle, men de viktigste delene. Har du aktivert sakte spørringer som skal logges på produksjonsserveren din? Slå av den, akkurat nå! Sakte spørsmål må undersøkes og festes godt før distribusjon. Den har sin plass i en utviklingsserver, ikke en produksjonsserver.


Hold alt oppdatert

Dette er et annet viktig tips som mange mennesker fortsetter å glemme. Enten det er versjonen av PHP, MySQL eller Magento selv, gir de nyere versjonene betydelig fart og stabilitet som du ikke helt har råd til å gå glipp av.

Spesielt når det gjelder Magento, til og med hver mini-oppdatering løser en rekke ytelsesproblemer og feilrettinger så lenge grenen er merket stabil, oppgradere!


Magento Compiler

Magento har en spiffy compiler modul som lover hvor som helst mellom en 25% -50% speedup. Som navnet antyder, samler denne modulen alle Magento-filer og fører dermed til bedre ytelse.

Vær oppmerksom på at denne modulen fortsatt er i beta og bare støtter 1,3x-bygger. Dette burde være klart snart, så hold dette poenget i bakhodet også.


Bruk Fooman Speedster

Fooman Speedster er en kraftig forlengelse som kan gi din butikk et godt løft i ytelsen. Det fungerer ved å kombinere, redusere, komprimere og cache JavaScript og CSS-filene dine. Dessuten gjør det også GZIP komprimering for resten av butikken.

Alt i alt betyr det at mindre data blir sendt og mindre forespørsler som er en nettvinne, slik som du ser det. Det fungerer med alle store versjoner av Magento og er definitivt et must for enhver butikk.


Optimaliser DB

En annen av de tingene du bør gjøre regelmessig for å forbedre ytelsen. Du må reparere databasen din, om nødvendig og deretter optimalisere den. Du kan gjøre det via vertene CPanel, phpMyAdmin eller bare shell kommandoer. Her er en rask kobling som går deg gjennom prosessen med phpMyAdmin.


Det siste ordet

Og vi er ferdige! I dag tok vi en titt på en rekke måter å forbedre Magento's ytelse. Forhåpentligvis har dette vært nyttig for deg, og du fant det interessant. Jeg er sikker på at jeg har gått glipp av flere poeng her, så vær så snill å chime i kommentarene med tipsene du har brukt.

Spørsmål? Hyggelige ting å si? Kritikk? Treff kommentar delen og la meg en kommentar. Glad koding!