Om Matomo har prestandaproblem kan vara väldigt frustrerande, särskilt när du behöver pålitlig analysdata för att fatta kritiska affärsbeslut.
Det finns flera möjliga orsaker till dålig prestanda och lika många lösningar. Här är några konkreta åtgärder som rejält kan förbättra er Matomo´s prestanda.
1. Uppdatera till Senaste Versionen av Matomo
Kontrollera att du använder den senaste versionen av Matomo. Nyare versioner inkluderar prestandaförbättringar och säkerhetsuppdateringar. Det är dessutom extremt viktigt ur ett säkerhetsperspektiv att Matomo och underliggande komponenter är uppdaterade.
2. Optimera databasen
Den enskilt största flaskhalsen för Matomo är databasen och det är många som missar att man behöver optimera konfigurationen i MySQL för att Matomo skall fungera över tid.
Det finns hundratals inställningar att justera i MySQL och det är ett löpande arbete att bevaka hur databasen mår (det finns inte en inställning som passar alla) men här är några tips för en riktigt långsam Matomo-installation.
Minne
Den enskilt viktigaste parametern att kolla på är innodb_buffer_pool, det spelar nämligen ingen roll om er databas körs i en server med massa minna om man inte justerat denna variabel i MySQL. Standardinställningen i MySQL är 128 MB det är väldigt, väldig lite. För en medium-stor Matomo-installation bör detta värde vara ett par GB. Läs dock på om vad er instans klarar av.
Filer
När Matomo växer så skapas fler tabeller. Detta gör att standardvärdena i MySQL kommer gå i taket och då fungerar inte cachningen, kika därför på dessa inställningar.
table_definition_cache=1200 (default 400)
innodb_open_files=1200 (default 400)
Kontrollera också som att det inte finns tabeller i databasen som innehåller väldigt stora mängder data. Vissa tabeller skall vara stora som tex visitor loggen, men i andra fall kan det bero på att något är fel. Matomo har schedulerade jobb som skall rensa bort data, men om dessa inte går klart eller krashar så kan ni få växande problem.
Slipp prestandaproblem,
testa Matomo SaaS från Digitalist
från 2499 SEK / månad
3. Arkiveringsprestanda
Om rapporter inte blir klara och vissa datumintervall, segment osv är tomma så kan det bero på att er arkivering inte fungerar.
Ett tips för att kontrollera hur bra er Matomo fungera är att klicka på (i) ikonen bredvid en rapport. Då kan du nämligen se när rapporten skapades. För dagens rapporter skall denna tid skal normalt inte var längre än någon timmer eller två, medans det för rapporter bakåt i tiden är ok om de är cachade.
Använd cron för arkivering
Matomo tillåter att arkivering körs (real-time), men detta är verkligen bara för hobby-användning, man skall använda cron. Annars kan man få väldigt stora problem inte bara med prestanda när er data växer.
Håll koll på inaktiverade av rapporter
En bra funktion i Matomo är att man kan bearbeta historiskt data, det finns en massa tillfällen när detta är önskat, men om er arkivering fungerar dåligt kan detta leda till att ni aldrig kommer ikapp kön.
Ett tips är att installera pluginen Extra Tools som vi på Digitalist har utvecklat, då kan ni hålla koll på hur många invalideringar som finns i systemet.
Prestande för arkivering
Det viktigaste att se till är att dessa jobb har tillräckligt med PHP minne.
Matomos konsol kommando för arkivering tillåter även väldigt mycket optimeringar, det går tex att köra parallella jobb så man kan laborera mycket med prestandan.
Parametrar att laborera med:
- --concurrent-requests-per-website (Exempel: -concurrent-requests-per-website 2)
- --concurrent-archivers (Exempel: --concurrent-archivers 2)
- --php-cli-options (Exempel: --php-cli-options="-d memory_limit=3G")
6. Undersök Plugins
Inaktivera onödiga plugins och tillägg som kan förbruka resurser. Kontrollera även om
7. Köhantering och Infrastruktur
Matomo under last är en väldigt komplex applikation att hantera, det är många rörliga delar och beroende på hur just er organisation använder systemet påverkar väldigt mycket vad som behöver göras.
Det finns en plugin som heter Queued Tracking denna plugin kan hjälpa till under hög last, men det ökat också komplexiteten på er installation.
Att köra Matomo i Kubernetes och att separera olika delar av applikationen i olika micro services kan ge väldigt stora fördelar, men även detta ökar på komplexiteten .
8. Loggning och Felsökning
Att hålla koll på loggar (i alla komponenter) ör väldigt viktigt, ofta finns svaren på era problem i dessa men det kräver att man har koll.
Det finns även stora vinster i att installera APM lösningar för att verkligen få på var problemen finns, men var extremt varsam med att köra dessa lösningar genom externa molntjänster då det i princip alltid innebär att man riskerar att exponera data från era applikationer in i dessa system. Det bästa är att installera open source i sina egna datacenter.
9. Granska era Segment
När man skapar upp ett segment i Matomo, så skapas ett nytt underliggande jobb som skall köras löpande i arkiveringen, det gör att man inte skall ha segment som inte fungerar.
Segment är dessutom svåra att göra rätt, så ett tips är att man bara tillåter att segment skapas av en administratör som är utbildad i Matomo. Låt interna användare beställa segment av denna / dessa personer.
Undvik segment som använder sökningar med "contains" / "innehåller" då dessa skapar sql frågor som inte kan använda index i databasen. Ofta kan man använda "starts with" / "startar med" istället.
10. Håll koll på era anpassade rapporter
Anpassade rapporter (custom reports) skapar också mer jobb för arkiveringen, så håll koll på dem, kontrollera att de fungerar samt ta reda på vilka av dem som kräver mycket resurser. Rensa om ni kan.
Slutsats
Att optimera Matomo handlar om att identifiera flaskhalsar, användarproblem och att förstå eran organisations specifika behov krav.
Behöver ni hjälp med er Matomo?
Slipp prestandaproblem,
testa Matomo SaaS från Digitalist
från 2499 SEK / månad