FAQ |
Kalender |
2006-04-10, 23:07 | #1 | |||
|
||||
Bara ett inlägg till!
|
På min server ligger det endast två sajter med betydande trafik just nu. En av sajterna lastar MySQL tokigt så den ibland blockerar något vilket resulterar i att alla anslutningar mot mysql används upp, vilket i sin tur resulterar i att båda sajterna blir oåtkommliga i några sekunder. Därför har jag tänkt att sätta max_connections på användarnivå, men strax efter att jag gör det kan den användaren inte längre ansluta. Felmeddelandet blir något i stil med att max_connections blockerar en till inloggning. Vad kan vara fel?
max_connectrions för hela servern är på 400. Då felet inte inträffar är det mellan 18 och 20 anslutningar under högtrafik (två webbsajter utan persistent anslutning + lite småkrafs). Jag har testat slänga på max_connections på 50 per användare, men då tar det tvärstopp. Vad är problemet? Vad kan jag ha missat? MySQL 4.1 |
|||
Svara med citat |
2006-04-10, 23:55 | #2 | ||
|
|||
Banned
|
Kolla att du stänger anslutningar på varje sida?
Även den bästa kan göra fel ibland |
||
Svara med citat |
2006-04-10, 23:58 | #3 | |||
|
||||
Bara ett inlägg till!
|
Ingen sajt kör persistenta anslutningar. Dessutom så ser jag i MySQL Administrators fina live-grafer att inte mer än max 20 anslutningar är gjorda åt gången under högtrafik. Förutom när det blir knas förståss för då slår graferna i taket.
|
|||
Svara med citat |
2006-04-11, 00:04 | #4 | ||
|
|||
Banned
|
Slå på loggning och kolla?
Kanske någon sida som sql frågan tar lång tid och låser tabellerna. Vilket resulterar i att sidan hänger sig, och användarna uppdaterar som fan? (Har hänt mig ) |
||
Svara med citat |
2006-04-11, 00:38 | #5 | |||
|
||||
Bara ett inlägg till!
|
Ja, det är förmodligen det som är felet (typiskt för MyISAM). Men nu är det inte jag som ansvarar över den andra sajten och jag vill hur som helst isolera sajterna så att inte båda lider av den tokiga koden.
|
|||
Svara med citat |
2006-04-11, 11:58 | #6 | ||
|
|||
Medlem
|
Hmm bästa vore väl att säga till den andra sajten som också borde uppleva problemet, att trimma sin sql lite, säkert inget stort jobb, om inte sidan är väldigt dåligt gjort dvs.
|
||
Svara med citat |
2006-04-11, 13:01 | #7 | |||
|
||||
Bara ett inlägg till!
|
Nej. Det bästa vore att få det här med max_connections att fungera redan idag så jag slipper deras problem. Efter det är gjort kan jag eller någon annan försöka hitta problemet på den andra sajten.
|
|||
Svara med citat |
2006-04-11, 22:13 | #8 | |||
|
||||
Klarade millennium-buggen
|
Hur ser dina andra inställningar ut? Det är ju inte bara max connections du bör trimma.
query_cache_limit = 1M query_cache_size = 32M query_cache_type = 1 # Extra tuning max_connections=200 interactive_timeout=100 wait_timeout=15 connect_timeout=10 table_cache=512 thread_cache=32 key_buffer=128M thread_concurrency=1 log_slow_queries=/var/log/mysqld.slow.log long_query_time=2 [isamchk] #key_buffer = 16M key_buffer=64M sort_buffer=64M write_buffer=16M |
|||
Svara med citat |
2006-04-12, 00:33 | #9 | |||
|
||||
Bara ett inlägg till!
|
Inte för jag förstår vad min my.cnf har med att få User.max_connections att fungera, men här är det intressanta ur den iaf. Kan tillägga att den brukar exekvera drygt 200 SQL-frågor per sekund under högrafik. Då är hitrate på query cache 100% och CPU:n gäspar nästan av uttråkning. Testade stänga av query cache idag under högtrafik utan att det påverkade CPU-lasten. P4 2,8GHz med 4GiB RAM.
Citat:
|
|||
Svara med citat |
2006-04-12, 08:12 | #10 | ||
|
|||
Banned
|
Finns en variabel i MySQL Administrator "Max Conn. Per User".... Fast den är avstängd by default... Lite skumt
|
||
Svara med citat |
Svara |
|
|