Kom ihåg mig?
Home Menu

Menu


MySQL prestandaproblem

 
Ämnesverktyg Visningsalternativ
Oläst 2006-01-11, 20:20 #1
Fredrikl Fredrikl är inte uppkopplad
Nykomling
 
Reg.datum: May 2005
Inlägg: 6
Fredrikl Fredrikl är inte uppkopplad
Nykomling
 
Reg.datum: May 2005
Inlägg: 6
Hej

Vi driver ett litet onlinedatorspel med php/mysql som bas och har väldiga problem med mySQLs prestanda. mySQL håller på att bli vår största bottleneck och iom att gängse uppfattningen är att den skall vara grymt snabb så misstänker jag att det är vi som är klåpare på att sätta upp den korrekt och inte tillverkarna som gjort en värdelös databasserver.

Vårt databasserver har följande hårdvara.
AMD sempron 3000+
512M Ram
80 gigs SATA hd

vi kör mySQL version 4.1 på windows 2k.

Som det är nu så börjar vår site "sega" sig vid ca 25-30 samtida användare(normalt webbsideklickande) och det känns väldigt få. Är det någon som kan uppskatta om det är normalt? om inte vad borde det ligga på ungefär? och sist men inte minst är det någon som har en aning om vad vi skall göra för att få upp prestandan? (har micklat med cachevärden, connections, trådar och index men inget hjälper)

/Fredrik
Fredrikl är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-01-11, 21:16 #2
acidflashs avatar
acidflash acidflash är inte uppkopplad
Flitig postare
 
Reg.datum: Nov 2005
Inlägg: 492
acidflash acidflash är inte uppkopplad
Flitig postare
acidflashs avatar
 
Reg.datum: Nov 2005
Inlägg: 492
Du säger att du kör Windows 2k, är de server version eller enbart en klient? För är de en klient så kan de förklara varför de ballar ur.
acidflash är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-01-11, 21:18 #3
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
Hur ser databasen ut (tabell och index definitioner) samt hur ser de frågor ut som typiskt körs varje gång en sida laddas.

Jag frågar för jag tror som sagt att det rör sig om att ni gjort något designfel elelr missat någon optimering.
eg0master är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-01-11, 21:19 #4
WizKid WizKid är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Apr 2004
Inlägg: 618
WizKid WizKid är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Apr 2004
Inlägg: 618
Det jag brukar göra är att installera mytop som är som top fast för mysql. Gör det enklare att övervaka vilka frågor det är som tar tid. Man får även ut siffror som antal frågor per sekund, hur stor procent av frågorna som cachas mm. Ofta brukar det vara en eller några få frågor som slöar ner. När jag väl hittat vilka det är så är det bara börja trixa med EXPLAIN för att se varför just de är långsamma. Detta hjälper ju ioförsig inte om det är hårdvaran som är flaskhalsen men själv tycker jag den burken borde klara med, men det beror självklart vilka frågor och antal frågor som ställs.

För optimering av MySQL skulle jag tipsa om boken: http://highperformancemysql.com/ . Själv hade jag enorm nytta av den.
WizKid är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-01-11, 21:38 #5
Kristofers avatar
Kristofer Kristofer är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Mar 2004
Inlägg: 1 053
Kristofer Kristofer är inte uppkopplad
Har WN som tidsfördriv
Kristofers avatar
 
Reg.datum: Mar 2004
Inlägg: 1 053
20-30 samtida onlinebesökare på en websida låter väldigt lite, brukar gå att ha betydligt fler innan det blir bekymmer.

Jag misstänker att ni antingen har sjukt många databasförfrågningar och / eller kodat sidan på ett klumpigt sätt som kräver onödiga resurser i samband med dessa. Ni kanske har moment då ni låser databasen för att göra en uppdatering ofta och därför upplevs den som seg?
Kristofer är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-01-11, 22:19 #6
kullervos avatar
kullervo kullervo är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Dec 2003
Inlägg: 1 519
kullervo kullervo är inte uppkopplad
Bara ett inlägg till!
kullervos avatar
 
Reg.datum: Dec 2003
Inlägg: 1 519
Just nu är det 600 pers online på min största sajt. Totalt kör MySQL 130 frågor per sekund på den servern. Enbart MyISAM- samt HEAP-tabeller. Det är ca. 10% av CPU:n kapacitet. Burken är en P4 2,8GHz.

Om ni bara vill ha generella tips för ökad prestanda föreslår jag att ni läser kapitlet om optimering i manualen.
kullervo är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-01-12, 12:20 #7
danjel danjel är inte uppkopplad
Medlem
 
Reg.datum: Nov 2003
Inlägg: 214
danjel danjel är inte uppkopplad
Medlem
 
Reg.datum: Nov 2003
Inlägg: 214
MyISAM tabeller brukade vara sega vid updates pga att de låste hela tabellen..kanske kan va nåt att kolla på

Server side cachning - verkar som väldigt få använder det (?) men väldigt ofta kan man ju cacha html:en som genereras på många sidor ..kan ju drastiskt minska antalet db-anrop
danjel är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-01-12, 12:28 #8
b_anderssons avatar
b_andersson b_andersson är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Apr 2004
Inlägg: 1 067
b_andersson b_andersson är inte uppkopplad
Har WN som tidsfördriv
b_anderssons avatar
 
Reg.datum: Apr 2004
Inlägg: 1 067
Citat:
Originally posted by danjel@Jan 12 2006, 12:20

Server side cachning - verkar som väldigt få använder det (?) men väldigt ofta kan man ju cacha html:en som genereras på många sidor ..kan ju drastiskt minska antalet db-anrop
Jag använder JPcache på ett par sidor som inte uppdateras SÅ ofta, det minskar belastningen en hel del.

Men bäst är som sagt tidigare att se över koden, mysql klarar väldigt många anrop/sek så länge allt är ok.

//Björn
b_andersson är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-01-12, 15:08 #9
Fredrikl Fredrikl är inte uppkopplad
Nykomling
 
Reg.datum: May 2005
Inlägg: 6
Fredrikl Fredrikl är inte uppkopplad
Nykomling
 
Reg.datum: May 2005
Inlägg: 6
Tack för alla bra svar.

Tabm skall jag förklara lite mer hur vår databas ser ut. Den består av ca 60 stycken innodb tabeller med varierande grad av fk connections och datamängd från ett par tusen till ett par miljoner rader. Det finns säkerligen både bra och dålig design bland alla dessa tabeller och ännu troligare finns det dåliga sqlsatser. Men det är inte det som är vårat stora problem. (tror vi inte iaf)

Vi gjorde idag ett litet testprogram för att jämföra de 2 databaser vi har tillgång till (extremt ovetenskapligt och missvisande men iaf) för att visa vilka stora skillnader det är. Tillverkade ett litet delphiprogg som ansluter till mysql via odbc och till en paradoxtabell BDE. Databasen består i bägge fallen av en enkel tabell med ett index och ett intvärde. Delphiprogrammet klarar då runt 56 000 inserts i sekunden till paradoxtabellen men endast runt 30 inserts per sekund till mysqltabellen. Jag har också skrivit en enkel phpsida med en loop som insertar i samma mysql-tabell och den klarar ca 58 inserts i sekunden. Det vill säga mysql-insertsen kör extremt mycket långsammare. Jag har även testat med delete och edit och i de fallen är skillnaderna ännu större.

Visst det är olika metoder och olika connectionsätt men att det skall skilja så mycket känns inte rätt. Det vi funderar över är om mysql skall vara så här slött. Låter det rimligt med under 100 inserts i sekunden eller ligger vi en faktor 1000 fel?

Vi kör klientversionen av win 2k, möjligt att vår enda chance är att testa ett annat os men då det kräver en hel massa arbete så känns det som en sista utväg.
Fredrikl är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-01-12, 15:42 #10
danjel danjel är inte uppkopplad
Medlem
 
Reg.datum: Nov 2003
Inlägg: 214
danjel danjel är inte uppkopplad
Medlem
 
Reg.datum: Nov 2003
Inlägg: 214
Har du en tabell struktur ?
danjel är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 21:30.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017