Een snellere webshop dankzij meer hosting capaciteit

categorie / Blog / Kennisdeling / Nieuwsberichten

Online shoppen wordt steeds populairder en er wordt dan ook vaker bij e-commerce websites besteld. Ook onze klanten zijn hard aan het groeien, waardoor de benodigde capaciteit voor onder andere fysieke schijfruimte voor shop data, database capaciteit en snelheid groter werd. Om de groei te faciliteren, hebben wij besloten om ons cluster, een verzameling van servers, een upgrade te geven. In dit blog bericht geven we uitleg over de verbeteringen en de gevolgen ervan.

Database snelheidsproblemen oplossen

Door de groei zagen we dat de database server een knelpunt is geworden. Sommige klanten merkten dat hun shop trager of instabiel werd. Daarom besloten we om hier de hoogste prioriteit aan te geven.

Ons cluster is volledig ingericht om zo optimaal mogelijk Magento shops te bedienen. Een groot voordeel van Magento is dat het modulair is. Hierdoor is het mogelijk om op een simpele manier een shop met functionaliteiten naar keuze uit te breiden. Alleen zorgt dit ervoor dat de database van een Magento shop ontzettend veel tabellen bevat.

Dit is geen probleem. MySQL, de huidige software die verantwoordelijk is voor het opslaan en verwerken van data, is gebouwd om met deze hoeveelheden om te kunnen gaan. Dit heeft echter wel invloed op de snelheid. Het is namelijk zo dat MySQL veel gebruikte tabellen in zijn geheugen bewaart. Hierdoor is het mogelijk om aanvragen, die dezelfde tabellen benaderen, te versnellen. Idealiter wil je dat er voldoende memory beschikbaar is voor MySQL om de cache zo optimaal mogelijk te beheren. Dit zorgt ervoor dat een tabel zelden vanaf de hardeschijf ingeladen hoeft te worden.

Vanwege de omvang van Magento komt het nog te vaak voor dat tabellen vanaf de hardeschijf ingeladen moeten worden. Doordat de server nog volledig op een HDD draaide, was dit een langzame operatie. Om dit probleem op te lossen hebben wij de database server voorzien van een 400 GB SSD. Ook hebben we MySQL verhuisd naar de SSD, zodat er geen enkel andere applicatie is die gebruik maakt van de SSD. Dit zorgt ervoor dat er voldoende capaciteit beschikbaar is om de verzoeken zo snel mogelijk af te handelen. Ook wanneer er data vanaf de hardeschijf ingeladen moet worden.

Meer bezoekers bedienen

Nu we de problemen omtrent snelheid hebben opgelost, was het volgende focuspunt om meer bezoekers te bedienen. Om dit waar te maken, hebben we na onderzoek besloten dat de database meer memory nodig had. Daarnaast constateerden wij dat de server te veel extra dingen deed om een snellere webshop te realiseren voor de klant. De database server was namelijk onder andere verantwoordelijk voor de NFS mount. De mount is een schijf die bereikbaar is vanaf alle servers binnen het cluster. Deze schijf gebruiken wij om onder andere product afbeeldingen te delen over meerdere servers. Dit zorgt echter voor veel I/O en netwerk operaties. Dit heeft als gevolg dat de database server het tijdens piekmomenten erg druk krijgt.

Naar aanleiding hiervan hebben wij samen met onze hosting provider Rackspace gekeken naar een passende oplossing, zonder in te moeten leveren op snelheid. Dat is waar de sNAS service van Rackspace om de hoek komt kijken. Dit is, net als de NFS mount, een hardeschijf die via het netwerk bereikbaar is, met als grote verschil dat deze makkelijker uit te breiden is en dat Rackspace SSD’s gebruikt.

Door de NFS mount te verplaatsen naar de sNAS hebben we niet alleen snelheidswinst weten te behalen, maar hierdoor heeft de database server het minder druk gekregen. Waardoor de server meer bezoekers kan bedienen.

Naast de overstap naar de sNAS, hebben we ook het geheugen van de database server verhoogd van 85 GB naar ruim 100 GB. Hierdoor kan MySQL efficiënter gaan cachen doordat er meer geheugen beschikbaar is.

Hosting optimalisaties met Percona

Enige tijd geleden zijn wij gestart met de zoektocht naar hosting optimalisaties. Tijdens dit onderzoek hebben wij een vergelijking gemaakt tussen verschillende software pakketten om de beste combinatie voor Magento te vinden. Percona kwam in vergelijking met MySQL goed uit de bus, omdat het iets meer snelheid op leverde. Echter was de snelheidswinst minimaal, waardoor we destijds er niet voor hebben gekozen om over te stappen. Nu was de situatie anders, aangezien we over moesten stappen naar een geheel nieuwe server vanwege de SSD’s, sNAS en de geheugen upgrade. Zodoende was het onderwerp omtrent Percona weer uit de ijskast gehaald. En deze keer kwamen ze goed uit de test!

De minimale snelheidswinst heeft de keuze om over te stappen naar Percona niet of nauwelijks heeft beïnvloed. Deze software heeft namelijk onder andere betere tools beschikbaar. Hiermee kunnen we bijvoorbeeld snellere database back-ups te maken, zonder dat de database gelocked hoeft te worden. Daarnaast zijn de medewerkers bij Percona erg service gericht. Ze helpen ons graag verder om tot de beste configuratie voor de COWW, het Magento platform van Techtwo, te komen.

Wat is het eindresultaat?

  • Allereerst hebben de dankzij de verbeteringen en aanpassingen, een beter schaalbare en stabiele database server gekregen.
  • Hierdoor kunnen we de groei van webshops beter ondersteunen.
  • Daarnaast hebben we ook over alle klanten, gemiddeld een halve seconde tijdswinst weten te behalen.

 

Laadtijden voor migratie
Laadtijden voor migratie

 

Laadtijden na migratie
Laadtijden na migratie
Hebben we jouw interesse gewekt?

We vertellen je graag meer over de mogelijkheden onder het genot van een goede kop koffie!

Neem contact op

Hebben we jouw interesse gewekt?We vertellen je graag meer over de mogelijkheden onder het genot van een goede kop koffie!

Jorden van den Beuken account manager
Giwanni Schaap account manager