webForumDet fria alternativet

Läcka i MySQL, lokalisera?

9 svar · 1 029 visningar · startad av Gimbo

GimboMedlem sedan dec. 20001 626 inlägg
#1

Hej,

Verkar som att jag har en läcka i min php kod, men den är omöjlig att lokalisera då jag har tusentals filer. Lite då och då typ 1ggn per vecka så hänger sig sidan och den bara står och tuggar, jag misstänker att det har med att jag någonstans glömt att stänga databasen eller liknande och därmed så finns det en massa aktiva connections till databasen, jag har kört en ful variant och satt:

max_connections = 5000 men det är bara ett tillfälligt plåster på såret. Vet ni hur man kan lokalisera läckan på bästa sätt? om inte, kan jag göra något script där när anslutningarna slår i taket så körs ett scipt som startar om MySQL tjänsten?

Skulle verkligen behöva lösa detta problem, då det är en djungel att gå igenom källkoden... tusentals filer med en massa kod i varje fil... ett system byggt typ innan mora brann =)

nitro2k01Medlem sedan aug. 20039 342 inlägg
#2

Se till att vara inloggad när sidan hänger sig och kör SHOW PROCESSLIST;
Borde ge en ledtråd åtminstone.

GildebrandMedlem sedan juni 2009920 inlägg
#3

Kör JetProfiler och håll koll på antalet öppna anslutningar. Det verktyget har hjälpt mig många gånger :)

KjetilMedlem sedan apr. 200846 inlägg
#4

http://jeremy.zawodny.com/mysql/mytop/

Kan rekommendera mytop för den mer avancerade användaren. Om man tycker om "top" i *NIX så lär man tycka om det här verktyget för MySQL :)

Glömde även tillägga att innotop kan vara bra om du använder dig av InnoDB:

http://code.google.com/p/innotop/

JetProfiler verkar dock ge väldigt lätt överskådlig information jämfört med ovan verktyg, men samtidigt om man vill felsöka på djupet så kan jag lugnt rekommendera mytop/innotop som är gratis också.

GimboMedlem sedan dec. 20001 626 inlägg
#5

Bör jag ändra något i php koden med innotop? Hur använder jag programmet för att felsöka?

Vad får jag för info med show processes? Ser ingenstans hur många aktiva connections jag har eller är kanske blind?

GimboMedlem sedan dec. 20001 626 inlägg
#6

Jetprofiler verkar vara att bra verktyg, det hag utläser ur deras hemsida i a f, men skall detta program installeras på servern eller funkar det om jag har den lokalt i min dator också?

GildebrandMedlem sedan juni 2009920 inlägg
#7

Kommer du åt att koppla upp dig mot servern från lokalt är ju det smidigast. Annars måste du ju köra någon Remote Desktop lösning mot servern för att kunna profilera vilket känns bökigt.

GimboMedlem sedan dec. 20001 626 inlägg
#8

Kommer inte åt DBn från min lokala dator utan har installerat programmet på servern vet dock inte vad jag ska titta på för att veta vilken tråd som läcker, måste jag köpa betalversionen för att se detta eller räcker det med gratis versionen? kan jag exempelvis se hur många aktiva connections som finns på sidan? för jag misstänker att det är någonstans jag glömt att stänga db'n.

GimboMedlem sedan dec. 20001 626 inlägg
#9

såg något galet när jag monitorera kan det kanske vara problemet? jag bifogar en skärmdump på index står det att man ska försöka hålla det under 20% men hos mig är det konstant 100%? sedan fick jag fram en sql sats där... fast har lite svårt att tolka det, bifogar en skärmdump

Skärmavbild 2012-07-18 kl. 20.29.57.png
GildebrandMedlem sedan juni 2009920 inlägg
#10

Ja det betyder alltså att din databas är mkt dåligt indexerad, och det är ju en mycket bra start för att få upp prestandan

132 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)