WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Misslyckade databasanslutningar (https://www.wn.se/forum/showthread.php?t=32052)

guran 2008-09-22 00:46

På en hemsida jag har, har jag studerat hur ofta det inte går att ansluta till MySQL när en besökare besöker sidan. Det sker ganska ofta och mycket mer än jag mer eller mindre kan acceptera.

Nu undar jag bara om det finna några av er medlemmar på WN som har gjort någon liknande studie och kan säga om det är vanligt att anslutningen till databasen misslyckas på webbhotellen eller inte.

Webbhotellen "skryter" ganska ofta om deras upptider och vid mätningar av typ IDG så mäter man ju i princip bara om man får svar vid ett anrop till en hemsida, men det mäts väl knappast om alla information kom fram. Har man en hemsida som ritar upp med hjälp av information från en databas och alla information inte ge till skriptet som ska rita sidan, så är det mer eller mindre inte en godkänd upptid enligt min mening.

emilv 2008-09-22 01:16

Misslyckade databasanslutningar kan enligt min erfarenhet oftast bero på två saker:
1) Överbelastad databasserver
2) Du har långsamma SQL-frågor

Oftast är det en kombination av dessa, där du har en databasfråga som använder filesort och servern är belastad så att det är svårt att få tillgång att skriva till disk. Då kan databasfrågan ta evigheter att köra.
Men det kan även finnas andra databasfrågor som segar ner, till exempel frågor mot dåligt indexerade tabeller och/eller SELECT-frågor ur gigantiska tabeller utan index.

Jag vet inte hur de gör på andra webbhotell, men vi har en begränsning av hur många samtidiga anslutningar en användare får ha till databasen. Om denne då kör ovanligt långsamma frågor så kommer denna begränsning göra att skriptet aldrig får någon anslutning. Det står ett tag och väntar på att få en ledig anslutning, men när det gått tillräckligt lång tid ger det upp och skickar ett felmeddelande.

Om vi inte skulle ha denna begränsning av antalet samtidiga anslutningar skulle vi ofta ha problem med användare som överbelastar hela servern och stör andra användare. Med den nuvarande ordningen sänker man på sin höjd sin egen sajt, inte någon annans.

Alltså:
Börja med att ta reda på vilka databasfrågor du har som tar lång tid. Kör dessa frågor själv fast med EXPLAIN framför så att du får en bild av vad som händer. försök också se om det finns något mönster i när du inte får anslutningar, till exempel om det är en viss tid. Kontakta också webbhotellet och fråga om de har någon aning. Skicka med underlag i form av databasfrågor, tider och liknande.
Läs om hur du använder EXPLAIN här:
http://dev.mysql.com/doc/refman/5.0/...g-explain.html

Dimme 2008-09-22 04:17

Det kan bero på att databasservern inte ligger i localhost och anslutningen mellan databasservern och webbserver är för långsam eller överbelastad. Så klart kan det även bero på överbelastad databasserver eller helt enkelt dålig maskin.

Citat:

Originally posted by guran@Sep 22 2008, 00:46
På en hemsida jag har, har jag studerat hur ofta det inte går att ansluta till MySQL när en besökare besöker sidan. Det sker ganska ofta och mycket mer än jag mer eller mindre kan acceptera.
Nu undar jag bara om det finna några av er medlemmar på WN som har gjort någon liknande studie och kan säga om det är vanligt att anslutningen till databasen misslyckas på webbhotellen eller inte.
Webbhotellen skryter ganska ofta om deras upptider och vid mätningar av typ IDG så mäter man ju i princip bara om man får svar vid ett anrop till en hemsida, men det mäts väl knappast om alla information kom fram. Har man en hemsida som ritar upp med hjälp av information från en databas och alla information inte ge till skriptet som ska rita sidan, så är det mer eller mindre inte en godkänd upptid enligt min mening.


martine 2008-09-22 10:59

Enligt min erfarenhet ganska vanligt att databasen ibland blir överbelastad på webbhotell. Uptime tycks endast innebära att servern är igång och går att pinga (ganska ointressant om man har en databasberoende webbapplikation).

Jag misstänker att en del webbhotell har bättre ordning och en del sämre - och det beror förstås även på hur väl optimerade dina egna (och andras) sql-frågor är. Ett webbhotell med självaktning borde förstås övervaka databasbelastningen och antingen förbjuda intensiv/tung belastning eller bygga ut infrastrukturen för att motsvara behovet.

Magnus_A 2008-09-22 12:39

Även onödiga DNS-uppslag hos mysql-servern gör att det går mycket långsamt. Inte ovanligt hos vissa webbhotell. Lätt att ändra i konfigureringen så att det går bort.

guran 2008-09-23 23:04

Jag får börja med att tacka er som har svarat i denna tråd då jag upplever era svar som bland de mest kvalitativa jag har läst på länge på WN (jag har ju inte läst alla trådar och svar på hela forumet)! Jag önskar att alla trådar kunde hålla en lika hög nivå.

Från det till mitt problem som jag tack vara svaren har fått en hum om var jag ska undersöka och börjar få ett grepp på det hela. Troligen beror problemet på begränsningar i antalet samtidiga unika förbindelser mot databasen där antalet skript som öppnar en förbindelse är för många samtidigt.

Magnus_A 2008-09-24 13:22

Lite statistik från en databasserver som vill vara anonym:
Servertrafik: Dessa tabeller visar statistik för nätverkstrafiken hos denna MySQL-server sedan den startade.
Trafik Tip ø per timme
Mottagna 1 360 MiB 3 052 KiB
Skickade 712 MiB 1 598 KiB
Totalt 2 072 MiB 4 649 KiB
Uppkopplingar ø per timme %
Max. samtidiga förbindelser 93 --- ---
Misslyckade försök 3 960 8,68 0,02%
Avbrutna 7 819 17,13 0,05%
Totalt 16 M 35,87 k 100,00%

Osiris 2008-09-24 22:47

Magnus_A, riktigt så där bra har inte vissa sajter sett ut på Loopia. Sen om det beror på min sopiga kunskap i mySQL, Loopias servrar eller båda och låter jag vara osagt.

Magnus_A 2008-09-25 10:33

Det är inte Loopia...
Edit: Enkelt ta fram statistik själv via phpmyadmin.


Alla tider är GMT +2. Klockan är nu 07:17.

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