[gezocht] hoe analyseer ik het gebruik van MySQL

Pagina: 1
Acties:

  • Gertjan
  • Registratie: Oktober 2001
  • Laatst online: 07-02 20:23

Gertjan

mmmm, beer...

Topicstarter
Het komt bij ons (hostingbedrijf) met enige regelmaat voor dat een klant met een slecht geschreven query of een (tijdelijk) erg drukke site een van onze databaseservers overmatig belast. We moeten vervolgens met de hand ingrijpen en aan de hand van logs gaan uitzoeken welke gebruiker/site dit veroorzaakt heeft.
Liever zouden we hier natuurlijk proactief op in willen springen, door alle gebruikers een bepaalde limiet te geven (processortijd/aantal queries ...) en het account uitschakelen wanneer die overschreven wordt, of accounts te throttlen, dus een bepaald aantal queries per seconde door te laten.

Voor zover ik weet kan dit standaard niet met MySQL. Als je naar dit onderwerp zoekt op internet kom je veel lovende verhalen tegen over JasperReports DBA Dashboard for MySQL. Echter, deze voert alleen periodiek een aantal queries uit, "SHOW STATUS", "SHOW PROCESSLIST", "SHOW TABLE STATUS" en "USE INFORMATION_SCHEMA". Hier hebben we dus nog steeds niks aan, omdat hier ten eerste niet uit te halen is hoe lang queries duren, en ten tweede is het niet sluitend, omdat het periodiek is.

Uiteraard is dit (deels) zelf wel te doen, door mysql bijvoorbeeld naar een fifo te laten loggen, en die met een zelf geschreven tooltje uit te lezen. Echter, logging kost performance, en als de fifo stuk gaat gaat heel MySQL op z'n plaat.
Wellicht is een andere manier om een kleine uitbreiding op de source te maken, maar voordat ik dat in productie durf te nemen op een server met 4000+ databases en gemiddeld 1000 queries per seconde zijn we weer een jaar verder ;).

Dus, weet iemand hier bestaande tools voor, die redelijk 'proven technology' zijn, of dat er andere goede manieren zijn om dit te doen?

PS. Op dit moment bieden we alleen MySQL 4.1 aan, maar uiteraard moet rekening gehouden worden met MySQL 5. We draaien alles op Linux.


PPS. Ik heb dit topic in PNS gezet, omdat hij mijns inziens in geen ander subforum thuis hoort. Het is niet alleen Windows of Linux gerelateerd, en is zeker geen 'Client Software'.

  • Profidiam
  • Registratie: December 2001
  • Laatst online: 25-01-2025

Profidiam

Ellenface

Kan je hier niets mee aanvangen?

http://dev.mysql.com/doc/refman/4.1/en/user-resources.html

Kan ook in 5:

http://dev.mysql.com/doc/refman/5.0/en/user-resources.html

[ Voor 0% gewijzigd door Profidiam op 23-10-2006 20:06 . Reden: typo ]

Da RuBBaH DuCK SKWaT - Ellen what did ye do ?- een test


  • Gertjan
  • Registratie: Oktober 2001
  • Laatst online: 07-02 20:23

Gertjan

mmmm, beer...

Topicstarter
Jawel, om harde limieten op te leggen kan dat inderdaad wel. Ik wil alleen ook graag statistieken kunnen genereren, omdat sommige klanten afgerekend willen worden op hun verbruik, zonder het risico afgesloten te worden. En ondanks het feit dat MySQL intern dus wel tellers bij moet houden hoeveel queries iemand doet, kun je die (volgens mij) niet opvragen.
Daarnaast biedt dit wel erg beperkte mogelijkheden, want we kunnen gebruikers hiermee niet beperken in resource-gebruik. Ik heb liever een gebruiker die 1000 simpele selects doet, dan iemand die 100 selects met lelijke subqueries/joins doet.