Portál AbcLinuxu, 10. května 2025 12:42

Dotaz: Ako prist na to kde to zlyhava?

13.9.2010 19:26 asdqwe
Ako prist na to kde to zlyhava?
Přečteno: 255×
Odpovědět | Admin
Mam problem na serveri s MySQL. Z nicoho nic mi MySQL vybehne na 100% a zahlti mi to server. Som si 100% isty ze to robi niektora sucast stranky ktora tam bezi z dovodu zleho SQL dotazu. Ale neviem prist na to ktory. Na stranke je stale cca 150-200 ludi online. Zalogovat mysql query viem, len neviem ako ich logovat s casom. Ako by ste postupovali pri rieseni takehoto "problemu"?

Dalsie info: HDD su vytazene na cca 20%

CPU je vytazene na cca 40% (64bit, dual core intel)

Takato anomalia sa stane asi 2x za den. Dakujem kazdemu za akukolvek radu.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

13.9.2010 19:28 asdqwe
Rozbalit Rozbalit vše Re: Ako prist na to kde to zlyhava?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Este doplnim, web bol cely optimalizovany pre co najnizsiu zataz od profesionalnych koderov (nemam dovod im neverit kedze zmena po ich prekodeni dotazov nastala obrovska). Dalej sa uz ale nevieme pohnut.
13.9.2010 19:30 Samgarr | skóre: 5
Rozbalit Rozbalit vše Re: Ako prist na to kde to zlyhava?
http://dev.mysql.com/doc/refman/5.6/en/slow-query-log.html
13.9.2010 19:39 asdqwe
Rozbalit Rozbalit vše Re: Ako prist na to kde to zlyhava?
Dakujem, to som ale uz skusil. Ked sa mi to blokne, tak mi uz kazda query zostane ako slow. To mi nepomaha.
14.9.2010 14:43 Sten
Rozbalit Rozbalit vše Re: Ako prist na to kde to zlyhava?
První v řadě bude ta, co to zlikvidovala ;)
rADOn avatar 13.9.2010 19:51 rADOn | skóre: 44 | blog: bloK | Praha
Rozbalit Rozbalit vše Re: Ako prist na to kde to zlyhava?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pokud jsou to dotazy do jedny innodb tabule, tak je mozny ze nektera transakce drzi zamek. Da se to dohledat pomoci SHOW INNODB STATUS. Obvykle je puvodce bud moc pomaly dotaz (a bude prvni ve slow query logu), nebo chcipnul aniz udelal rollback (v innodb status uvidis spoustu zamrzlych transakci).

PS ta druha vec server nezahlti, ale muze bloknout web. Casto pote server zahlti uzitvatele zbesile klikajici na refresh.
"2^24 comments ought to be enough for anyone" -- CmdrTaco
Josef Kufner avatar 13.9.2010 23:46 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Ako prist na to kde to zlyhava?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Doporučuju počítat časy generování jednotlivých stránek. V PHP na to je funkce microtime(). Na začátku přečteš jeden čas, na konci druhý, odečteš a zaloguješ. Pak stačí kouknout do logu, které stránky trvají podezdřele dlouho. Lokalizace problematického selectu pak už bude hračka. Navíc pak můžeš i sledovat, jak se projeví různé optimalizace i jinde než v SQL dotazech.
Hello world ! Segmentation fault (core dumped)
14.9.2010 09:36 Ivo
Rozbalit Rozbalit vše Re: Ako prist na to kde to zlyhava?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Podla mna mas v aplikacii nejake sql ktore zablokuje DB a ostatne sql cakaju na vykonanie toho blokujuceho.

Ked sa to stane daj si vypisat zoznam processov: mysql> SHOW PROCESSLIST;

Tam potom vidis blokujuci process a mozes ho zabit. Potom si to sql najdi v aplikacii a optimalizuj ho.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.