Bekijk Volledige Versie : Te veel db connecties
M'n site draait prima (5000 unieke bezoekers per dag, 40 Gb per maand) en ik ben tevreden over m'n host, maar nu gebeurd het heel af en toe dat ik even een dag een goede link krijg op een hele grote site. Daar komt dan zoveel verkeer vanaf dat ik allemaal foutmeldingen op de site krijg (te veel connecties met de database). M'n host haalt dan m'n site offline omdat er nog meer sites op de server draaien en die schijnen daar ook last van te hebben.
Is het normaal dat een host zomaar je site platgooit vanwege te veel verkeer?
En hoe ga ik dit voortaan voorkomen zonder dat ik klauwen met geld uit moet gaan geven?
als je site overlast veroorzaakt is je host daar wel toe gerechtigd denk ik zo
check daarvoor even zijn algemene voorwaarden.
p.s het zal niet draaien om het verkeer maar om slechte scripting waardoor veel db connecties
Normaal? Tsja wat is normaal.
Als je ineens zoveel bezoekers krijgt dat anderen er last van hebben is dat denk ik best normaal, als de server verder niet te vol staat enzo.
Dan heb je gewoon hoge eisen en is het misschien tijd naar een andere oplossing te kijken...
Maar eigenlijk hebben we nog te weinig info zo :)
Over het algemeen is het wel gebruikelijk om in te grijpen als meerdere klanten onder 1 klant lijden...
Je website draait teveel mysql queries(/connecties) bij pieken, een hoster heeft dat liever niet. Het kan zijn dat de hoster hierdoor je contract niet wilt verlengen.
Indien je geen problemen wilt en altijd bereikbaar wilt zijn, kan je een dedicated server nemen. Zoveel kost het niet, een goedkope budget dedicated server, omdat er maar 1 website op gaat draaien.
Wat zou zoiets kosten?
En hoeveel connecties zou ik mogen maken volgens jullie?
Stel, ik mag er 200 tegelijk maken, dan mag ik dus maximaal 200 bezoekers tegelijk op de site hebben? En als ik 2 databases per pagina open dan mag ik er dus nog maar 100 tegelijk hebben?
5000 bezoekers per dag is nou niet zo heel spectaculair, maar als je queries niet helemaal joffel zijn geschreven dan kan dit onnodig de server belasten. Het is inderdaad vrij gebruikelijk om 1 site te blokkeren wanneer deze de performance dusdanig omlaag haalt, dat de andere sites hier onder te lijden hebben.
Wat je kunt doen:
- Queries optimaliseren !
- VPS of Dedicated hosting overwegen, de kosten hiervan beginnen bij 10-20 euro per maand (voor een VPS) tot 75-275 euro voor een dedicated server.
worden de query's wel afgesloten in de code?, dit zie ik ook nog wel is gebeuren :)
De queries worden wel afgesloten ja, maar dit doet PHP ook zelf nog een keer. Er zitten wel wat grote queries in dus ik zal eens kijken wat ik nog kan doen.
Maar nu blijft de vraag of ik ook met geoptimaliseerde queries maar 200 bezoekers tegelijk kan hebben? Want dan is het optimaliseren wel een verbetering maar niet de echte oplossing. Want bij veel bezoek gaat de server nog op z'n gat.
Een dedicated server lijkt me een beetje overkill in deze situatie en ik ga ook echt geen 70 euro per maand betalen. Im had nog nooit van VPS gehoord maar het klinkt wel ok. Dan zou ik misschien al voor iets van 15 euro per maand klaar kunnen zijn. Dat klinkt beter! Heeft iemand wat meer info hier over of heeft een van jullie een mooie aanbieding die interessant zou kunnen zijn voor mijn situatie?
Ik weet niet welke site het betreft maar weet zeker dat je met een gewone sites (dus geen game o.i.d.) met slechts 5k uniek makkelijk moet kunnen draaien op een shared. Misschien een optie te caching (wegschrijven in .html eens per X tijd en dan readfile?) of gewoon de querys verbeteren?
Ik heb ff zitten kijken maar ik heb geen flauw idee welke queries voor problemen zouden kunnen zorgen. Is dit iets waarbij m'n host zou moeten kunnen helpen? Zouden zij kunnen zien welke pagina/query het probleem vormt?
wat voor site is het een zgn mafiagame oid
je host zou wel kunnen helpen maar denk dat ie dat niet gratis voor je zal gaan uitpluizen.
het zijn jou scripts dus zul je er zelf ook iets aan moeten oplossen ben ik bang
Ok, conclusie : m'n scripts moeten beter.
Maar nu ff verder, als mijn scripts helemaal briljant zijn hoeveel bezoek moet er dan tegelijk mogelijk zijn?
maar is het nu een mafiagame of niet want daar geef je geen antwoord op
gezien je vragen ga ik er maar vanuit dat het wel zo is.
ik ben nl geen 1 mafiascript tegen gekomen wat wel goed gescript is dus ik wens je succes.
wil je idd geen problemen hebben is een dedicated server idd beter voor je
Het is een sportsite die ik zelf gemaakt heb..weinig spannende scripting.
Zijn index-en goed aangemaakt? Als je op een id select dat uniek is altijd LIMIT 1 ? Niet (iig niet vaak) SELECT * ?
Ik gebruik nooit select *
Wat bedoel je precies met LIMIT 1? Ik heb veel queries met "WHERE id=56" en dan komt er dus maar 1 regel terug. Daar doe ik geen LIMIT 1
(ik moet trouwens even zeggen dat ik blij ben met de vele en goede antwoorden op dit forum, top!)
LIMIT 1 in een query wil zeggen dat je maar 1 record ophaald. Dit is handig bij queries met meerdere records als output als je enkel de 1ste record nodig hebt.
edit:
Een LIMIT gebruik je op 't eind van je query
Als je zeker weet dat er maar 1 id is met 58, dan zoekt de engine toch nog door . Door LIMIT 1 stopt hij meteen, wat tijd scheelt (tenzij het de laatste van de table is, maar dat weet ik niet eens zeker :p)
Ik mag aannemen dat wanneer je een unique contraint op een veld hebt de engine snugger genoeg is om niet door te zoeken naar nog meer records nadat er 1 gevonden is.
Ik mag aannemen dat wanneer je een unique contraint op een veld hebt de engine snugger genoeg is om niet door te zoeken naar nog meer records nadat er 1 gevonden is.
Ik dacht dit ook.
Mwa, weet dat niet zeker. Het is iig het proberen waard. Primary key voldoet ook (=UNIQUE NOT NULL)
Alvorens op zoek te gaan naar een probleem in je site of een VPS oplossing raad ik aan om ook vooraf nog een onderzoek te doen naar je host.
Ik weet niet bij wie je zit en ben ook niet van plan namen van hosts waar wij vroeger slechte ervaringen mee hadden hier op het forum te plaatsen.
Wel is het een feit dat we naast onze hosting ook een datingsite beheren die vroeger toen we nog geen hosting aanboden geplaatst werd op een shared account.
De toenmalige host wist ons te vertellen dat de website teveel db queries uitvoerde en vandaar op suspend werd gezet.
Moet je weten dat deze site toen slechts een 2tal bezoekers gelijktijdig online had :-)
De enige oplossing was volgens hun de site(code) aanpassen of uitkijken voor een VPS oplossing die zij natuurlijk aanboden.
We zijn overgestapt naar een VPS oplossing vermits de site anders niet meer online kwam maar enkele weken later kregen we te horen dat alweer dezelfde site voor problemen zorgde.
Ditmaal zou de VPS teveel belast worden wat het voor de andere gebruikers niet prettig maakte om van dezelfde server gebruik te maken wegens vertraging op hun deel van de server.
Uiteraard konden we enkel nog overstappen naar een dedi server wat we toen ook maar deden.
Enkele weken heeft de site erop gewerkt maar het servertje bleek niet stabiel genoeg en viel om de haverklap uit wegens (volgens de host) te zware belasting.....
Uiteindelijk zijn we dan zelf hostingaanbieder geworden en plaatsten we de site op één van de eigen servers alwaar ze nu nog rustig verder draait.
Pikant detail is dat ze momenteel samen met 200 andere domeinen de server belast met 0.17 en er aan onze code sindsdien niets gewijzigd is.
begrijpe wie kan dus.....
Marc
Niet dat ik zo gek veel verstand van PHP heb, maar we hebben klanten die het presteren om voor 1 indexpagina al ruim 600 queries op te roepen. Volgens mijn (niet professionele) mening is dit tergend veel. Dat soort sites gaan gewoon offline als er problemen optreden.
Wij hebben dit probleem momenteel ook met 2 klanten op een van onze sharedservers. Probleem is dat ook zij het niet hadden verwacht en wij er niet gerekend zijn. MySQL vliegt er hier ook af en toe uit en ja enige wat wij kunnen doen is de gebruiker offline halen en na enkele minuten weer online. Vaak blijft alles rustig, maar ook wij kunnen weinig doen.
In onze voorwaarden staat ook dat scripting etc wat overlast of hinder veroorzaakt verboden is. Echter is het erg moeilijk.
Heb daarstraks een groot verbruiker suspended geplaatst omdat deze een enorme load veroorzaakte, 800 tot 1500 bezoekers online die alleen gebruik maken van mysql vinden dat niet echt leuk. Wij zijn in bespreking met deze klant en plaatsen hem misschien op een aparte server.
Het blijft erg vervelend, andere klanten hebben er enorme last van.
Niet dat ik zo gek veel verstand van PHP heb, maar we hebben klanten die het presteren om voor 1 indexpagina al ruim 600 queries op te roepen. Volgens mijn (niet professionele) mening is dit tergend veel. Dat soort sites gaan gewoon offline als er problemen optreden.
600? beetje onwaarschijnlijk verhaal? of was het google earth.
Triloxigen
25/04/06, 11:06
600? beetje onwaarschijnlijk verhaal? of was het google earth.
Ohw, echt niet :)
Gewoon queries in een for lus gooien is vrij normaal lijkt het soms :|
crazycoder
25/04/06, 11:22
Ik heb ff zitten kijken maar ik heb geen flauw idee welke queries voor problemen zouden kunnen zorgen. Is dit iets waarbij m'n host zou moeten kunnen helpen? Zouden zij kunnen zien welke pagina/query het probleem vormt?
Ga naar de mysql prompt en voer je queries met explain uit. Je zal dan vlot zien waar je ze kan verbeteren.
Overigens heb ik zelf minder vertrouwen in VPS en goedkope dedicated servers. Als je iets goeds wil zal je ervoor moeten betalen, goed mogelijk dat je meer dan eur 15 per maand kwijt bent. Met een goede succesvolle site maak je een goede kans om dat met met ringtones e.d. terug te verdienen.
Aan het verhaal van 4design kan je zien dat goedkoop soms duurkoop is.
Ik heb een vrij uitgebreide uitleg geschreven over hoe sites te optimaliseren. Meest effectieve is om op het moment van wijzigingen, de pagina als HTML op te slaan, net zoals wht en fok doen.
Link van mijn stuk: http://www.sity.nl/?show=support-faq&action=view&id=83
Overigens bieden wij zelf dedicated servers aan vanaf 49,50 per maand. Daar mag je zoveel brakke scripting op draaien als dat de server fysiek aan kan :D.
600? beetje onwaarschijnlijk verhaal? of was het google earth.
Php scriptjes die zelf uitrekenen hoeveel queries ze doen. De indexpagina gaf een getal in de 600 aan :)