Kom ihåg mig?
Home Menu

Menu


Prestanda

 
Ämnesverktyg Visningsalternativ
Oläst 2005-11-29, 14:33 #1
Conths avatar
Conth Conth är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Aug 2005
Inlägg: 908
Conth Conth är inte uppkopplad
Mycket flitig postare
Conths avatar
 
Reg.datum: Aug 2005
Inlägg: 908
Har en fråga om prestanda på min webbsida.

Den använder Linux/Apache/Php/mysql och fungerar utmärkt ända tills det kommer upp i många samtidiga användare (+200 inom ett par minuter)

Jag har gått igenom mysql config (max_connections=300 mm), apaches config (MaxClients 255 mm)
Kör på en Pentium 4 (3 Ghz) med 2 GB minne

Jag har ju rätt många sql accesser men inget dramatiskt i "slow-loggen"

Någon som har något tips på något jag bör fixa/undersöka ??
Conth är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-11-29, 15:30 #2
Björn Björn är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: May 2004
Inlägg: 1 224
Björn Björn är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: May 2004
Inlägg: 1 224
Är databasen tillräkligt normaliserad?
Björn är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-11-29, 15:56 #3
Conths avatar
Conth Conth är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Aug 2005
Inlägg: 908
Conth Conth är inte uppkopplad
Mycket flitig postare
Conths avatar
 
Reg.datum: Aug 2005
Inlägg: 908
Ja det skulle jag vilja påstå. Säkert inte perfekt och jag gör onödigt många accesser (det är utvecklat utan max hänsyn taget till den volym det blivit). Men det finns inga tunga join eller dyl.

Har jobbat på att minska omläsningar i sql genom att använda mer sessionsvariabler och cachning men utan större resultatförbättring.
Conth är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-11-29, 16:59 #4
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
Att du behöver ha max_connections=300 för MySQL tyder på att frågorna som utförs ofta blokeras. På min server har jag ungefär 500 online samtidigt totalt på några olika sajter. Det brukar vara ungefär en handfull mysql-anslutningar samtidigt.

Kör igång MySQL Administrator och kolla i statistiken. Där är värderna kommenterade så att du får vet om det är bra eller dåligt.

Jag skulle gissa på att ditt problem är att du har många updates i en MyISAM-tabell. Medans man ändrar i en MyISAM-tabell är hela tabellen låst. En lösning på det problemet är att byta tabelltyp till InnoDB. Killen som har Sockerdricka.nu hade det problemet tidigare i år och fick väldigt bra resultat. Finns en tråd om det här på WN.
kullervo är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-11-29, 22:39 #5
Conths avatar
Conth Conth är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Aug 2005
Inlägg: 908
Conth Conth är inte uppkopplad
Mycket flitig postare
Conths avatar
 
Reg.datum: Aug 2005
Inlägg: 908
Det låter rimligt.
Visste inte att hela tabellen blir låst. Det är mycket interaktivitet och databsen uppdateras flitigt.

En liten sidofråga - trodde att limit i en select sats begränsade rader som hämtas. Men i explain får jag ut alla rader som matchar min "where sats". Är det någon skillnad i effektivitet att använda limit x kontra att själv "hämta" X rader (fetch) ??

*edit stavning
Conth är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-11-29, 23:56 #6
zorans avatar
zoran zoran är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2004
Inlägg: 598
zoran zoran är inte uppkopplad
Mycket flitig postare
zorans avatar
 
Reg.datum: Jun 2004
Inlägg: 598
Citat:
Originally posted by Conth@Nov 29 2005, 15:33
Har en fråga om prestanda på min webbsida.

Den använder Linux/Apache/Php/mysql och fungerar utmärkt ända tills det kommer upp i många samtidiga användare (+200 inom ett par minuter)

Jag har gått igenom mysql config (max_connections=300 mm), apaches config (MaxClients 255 mm)
Kör på en Pentium 4 (3 Ghz) med 2 GB minne

Jag har ju rätt många sql accesser men inget dramatiskt i "slow-loggen"

Någon som har något tips på något jag bör fixa/undersöka ??
Ja, var ska man börja?

Använder du persistent connections? Använder du mysqli_prepare()?

Kan vara något att titta på i så fall.
zoran är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-11-30, 00:04 #7
Conths avatar
Conth Conth är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Aug 2005
Inlägg: 908
Conth Conth är inte uppkopplad
Mycket flitig postare
Conths avatar
 
Reg.datum: Aug 2005
Inlägg: 908
Ja jag använder persistent connections (fast db ligger i localhost verkar det ha positiv effekt).
Däremot använder jag inte mysqli_prepare. Kör inte php 5 ännu.

Jag har lite hemläxa att göra - är medveten om det. Det är (positiva) problem när populariteten växer mer än man tänkt sig när man började "hacka"... ;-)

Tanken var bara att höra om det finns något enkelt och snabbt att göra medan jag "läser på".

InnoDB låter ju intressant... Någon annan som konverterat från myISAM och vill dela med sig av erfarenheten ?
Conth är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-11-30, 01:39 #8
Crotalus Crotalus är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2004
Inlägg: 40
Crotalus Crotalus är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2004
Inlägg: 40
Citat:
Det låter rimligt.
Visste inte att hela tabellen blir låst. Det är mycket interaktivitet och databsen uppdateras flitigt.
Byt tabellmotor till InnoDB (eller byt databasengine till PostgreSQL ).

Citat:
En liten sidofråga - trodde att limit i en select sats begränsade rader som hämtas. Men i explain får jag ut alla rader som matchar min "where sats". Är det någon skillnad i effektivitet att använda limit x kontra att själv "hämta" X rader (fetch) ??
Du blandar nog ihop antalet rader som returneras med antalet rader som query-exekveraren måste gå igenom för att sammanställa din databasfråga.
Crotalus är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-11-30, 08:49 #9
Henrik Henrik är inte uppkopplad
Medlem
 
Reg.datum: Oct 2004
Inlägg: 280
Henrik Henrik är inte uppkopplad
Medlem
 
Reg.datum: Oct 2004
Inlägg: 280
Citat:
InnoDB låter ju intressant... Någon annan som konverterat från myISAM och vill dela med sig av erfarenheten ?
Inga problem alls när vi gjorde det för de flesta av våra tabeller. Bra effekt prestandamässigt för databasintensiva sajter, helt klart!
Henrik är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-11-30, 12:39 #10
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
Citat:
Originally posted by Conth@Nov 30 2005, 00:04
InnoDB låter ju intressant... Någon annan som konverterat från myISAM och vill dela med sig av erfarenheten ?
De trådarna jag tidigare snackade om är dessa:
http://www.webmasternetwork.se/index.php?a...&hl=innodb&s=wn
http://www.webmasternetwork.se/index.php?a...&hl=innodb&s=wn

Edit: Tycker du ska kolla på den fina statistiken som MySQL själv samlar in och analysera den för att se vart flaskhalsarna sitter. Som sagt, MySQL Administrator underlättar för detta.
kullervo ä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 18:59.

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