PDA

Bekijk Volledige Versie : Trage site..



ErikKosters
08/07/06, 10:38
Beste,

Ik zit met een probleem.. namelijk 1 van onze sites is zeer traag. Namelijk www.ek-hosting.nl. Het probleem is niet de load dat weet ik zeker en of het aan de webserver ligt ik weet het niet, want www.dutchglobetrotters.nl staat op dezelfde server en die is wel gewoon snel aanwezig..

Any clue?

Als je het mij vraagt lijkt het een probleem tussen die website en MySQL.. Echter heb ik niets gewijzigd. Raar dan, omdat als ik gewone html pagina erop zet het wel snel werkt.

Trouwens bekijk dit:

http://www.ek-hosting.nl/test.html
http://www.ek-hosting.nl/index.php

Zoals je merkt is php gewoon traaaag. Heb het al een schop gegeven maar mocht niet baten, verder geen hoge load..

crazycoder
08/07/06, 10:56
Wilde je eigenlijk al de suggestie aan de hand doen om wat statische html te proberen. Zie dat je posting aan heb gepast en dat al heb geprobeert.

Geen idee wat je script probeert te doen, of wat mysql probeert.. Kan je niets in logfiles vinden?

Thafusion
08/07/06, 11:05
Heb je in de msql config "log slow queries" aanstaan?
Dan kan je precies uitlezen bij welke query het fout gaat.

ErikKosters
08/07/06, 11:14
Waar staat die file precies (mysql.conf neem ik aan? als ik die locate vindt hij alleen /usr/local/directadmin/conf/mysql.conf)

/etc/my.cnf is ut dus zal even kijken.

log-slow-queries = /var/log/mysql/mysql-slow.log
long_query_time = 1

Heb ik nu daarbij in gezet.. Wanneer maakt hij logjes aan of?

Thafusion
08/07/06, 12:09
je moet de log file ook nog aanmaken chmod en chrown naar user en group mysql

dan mysql restarten en zou er iets in het bestand moeten komen

mind
08/07/06, 12:22
Lijkt meer op een of andere timeout. Het duurt exact 10 seconden voorde pagina laad en dat is waarschijnlijk geen toeval. Verander de hostnaam van je mysql server eens in een ip in het script (als dat al niet het geval is) en kijk dan nog een keer. Veranderd de snelheid dan is het hoogst waarschijnlijk DNS gerelateerd.

ErikKosters
08/07/06, 12:37
$db->server = "127.0.0.1";
$db->gebruikersnaam = "xx";
$db->wachtwoord = "xx";
$db->naam = "xx";

mysql_connect($db->server, $db->gebruikersnaam, $db->wachtwoord);
mysql_select_db($db->naam);

Dat heb ik momenteel.. maar alsnog blijft het 10sec vertragen.

Keenondots
08/07/06, 12:46
Zijn andere PHP sites ook traag? Kijk met top, mytop, etc waar de bottleneck ligt. Wat is de CPU load? Load average? Welke processen gebruiken de meeste CPU? Is je I/O wait% hoog? Etc...

ErikKosters
08/07/06, 12:49
Andere php sites zijn naar mijn weten niet traag..

www.team-id.org - Site van klant van ons met PHPNuke en dus PHP/MySQL



CPU Load: 12:45:49 up 13 days, 20:46, 1 user, load average: 0.12, 0.04, 0.01




[root@server mysql]# top
top - 12:46:10 up 13 days, 20:46, 1 user, load average: 0.09, 0.04, 0.01
Tasks: 93 total, 1 running, 90 sleeping, 2 stopped, 0 zombie
Cpu(s): 1.3% us, 0.6% sy, 1.2% ni, 96.2% id, 0.6% wa, 0.1% hi, 0.0% si
Mem: 1490664k total, 1418516k used, 72148k free, 30108k buffers
Swap: 2031608k total, 160k used, 2031448k free, 1233416k cached


Geen verontrustende dingen eigenlijk dus..

mind
08/07/06, 13:25
Start mysql eens met --skip-name-resolve op de command line...

systemdeveloper
08/07/06, 13:31
gebruik gewoon af en toe ergens de php time() functie en profile de boel zodat je weet waar het te lang gaat duren. Het lijkt inderdaad op een timeout. Als ik een domeincheck doe op en nietbestaand domein, duurt het even lang voordat de page geladen is terwijl zo'n check normaal significant extra tijd zou kosten... roep je toevallig ALTIJD (bugje of zo) een domeincheck aan?

John

ErikKosters
08/07/06, 13:38
Nee, site heeft eerder altijd gewerkt.. En heb mysql gestart met --skip-name-resolve maar mocht niet baten. Zou anders iemand met mij contact op kunnen nemen via msn (msn@ek-hosting.nl) omdat het vervelend begint te worden.

Heb voor de flauwekull even file gemaakt die allerlei cijfers uit de SQL haalt:

http://ek-hosting.nl/include/test.php
werkt dus perfect deze...

Toch scripting fout ergens? Maar waar.. can anyone help me as i didnt changed any :)

systemdeveloper
08/07/06, 14:01
Nee, site heeft eerder altijd gewerkt.. En heb mysql gestart met --skip-name-resolve maar mocht niet baten. Zou anders iemand met mij contact op kunnen nemen via msn (msn@ek-hosting.nl) omdat het vervelend begint te worden.

Heb voor de flauwekull even file gemaakt die allerlei cijfers uit de SQL haalt:

http://ek-hosting.nl/include/test.php
werkt dus perfect deze...

Toch scripting fout ergens? Maar waar.. can anyone help me as i didnt changed any :)

Hmmm... zal even debuggen worden vrees ik. Daarna kun je pas een oplossing verzinnen. Ik zou toch gewoon even wat timing inbouwen en precies uitzoeken waar iets fout gaat. Dit kan aan vanalles liggen (mysql, firewalls, fout in het script, een misplaatste include(), noem maar op).

Wil je gratis hulp of zakelijk ?

John

ErikKosters
08/07/06, 14:09
Gratis, dit is gewoon klein foutje ergens neem ik aan.. Maar toch raar dat het ineens is.. Heeft zich niet eerder voorgedaan en heb geen script gewijzigd.

En bedoel je kunt voor alles wel geld vragen maar je mag elkaar ook best eens helpen..

systemdeveloper
08/07/06, 14:12
Heb je ergens een linkje zitten naar een site die sinds kort niet meer bestaat?

ErikKosters
08/07/06, 14:22
Heb de fout gevonden, nu nog een oplossing ervoor vinden. Het ligt aan hetgeen dat ik het IP adres en HOSTNAME van de bezoekers log. De fout zit hem ergens in deze:



$client_host = gethostbyaddr($client_ip);


De client ip wordt zo aangeroepen:



$client_ip = $_SERVER['REMOTE_ADDR'];


Any clue? :) Heb er nu ff tijdelijk een // voorgezet en nu werkt de site gewoon normale snelheid :)

systemdeveloper
08/07/06, 14:26
Heb de fout gevonden, nu nog een oplossing ervoor vinden. Het ligt aan hetgeen dat ik het IP adres en HOSTNAME van de bezoekers log. De fout zit hem ergens in deze:



$client_host = gethostbyaddr($client_ip);


De client ip wordt zo aangeroepen:



$client_ip = $_SERVER['REMOTE_ADDR'];


Any clue? :) Heb er nu ff tijdelijk een // voorgezet en nu werkt de site gewoon normale snelheid :)

Hmmm, voor elke request een dns aanroep doen, kost nu eenmaal tijd... maar geen 10 seconden per page. Anders kun je eens naar de load van je nameserver kijken. Misschiern trekt ie het niet.

ErikKosters
08/07/06, 14:28
named 7463 0.0 0.2 37292 3464 ? Ssl Jul07 0:12 named -u named

Keenondots
08/07/06, 14:29
Check je /etc/resolv.conf op nameservers die dood zijn.

systemdeveloper
08/07/06, 14:30
Gaat het cachen van named wel goed? Dat ie 1 keer wat langer duurt, kan ik me voorstellen, maar niet elke pagina. Dan moet het bezoekers ip/hostname al gecached zijn, dacht ik.

ErikKosters
08/07/06, 14:31
Hoe kan ik kijken of dit goed gaat..?

Mijn server lijkt die commando gewoon niet leuk te vinden lijkt ut:



<?php
$client_ip = $_SERVER['REMOTE_ADDR'];
$client_host = gethostbyaddr($client_ip);
print "$client_ip<br>$client_host";
?>


http://www.ek-hosting.nl/include/test.php

Ik ga me resolv.conf ff nachecken:



[root@server1]# ping google.nl
ping: unknown host google.nl


Blijkt denk ik niet aan mij te liggen maar aan me colo-provider.. ik ga even contact opnemen.



[root@server2]# ping google.nl
ping: unknown host google.nl


Gedaan, nu kan ik wel gewoon pingen naar hostnames maar alsnog blijft $client_host = gethostbyaddr($client_ip); raar doen.

systemdeveloper
08/07/06, 14:56
Hoe kan ik kijken of dit goed gaat..?

Mijn server lijkt die commando gewoon niet leuk te vinden lijkt ut:



<?php
$client_ip = $_SERVER['REMOTE_ADDR'];
$client_host = gethostbyaddr($client_ip);
print "$client_ip<br>$client_host";
?>


http://www.ek-hosting.nl/include/test.php

Ik ga me resolv.conf ff nachecken:



Blijkt denk ik niet aan mij te liggen maar aan me colo-provider.. ik ga even contact opnemen.



Gedaan, nu kan ik wel gewoon pingen naar hostnames maar alsnog blijft $client_host = gethostbyaddr($client_ip); raar doen.

Hmmm... als je colo-p bepaalt of je kunt pingen... het je er waarschijnlijk een firewall tussen zitten. Misschien dat daar nog iets niet helemaal jofel zit? (jeserver <-> dns bv)

Maar.... google.nl staat toch niet in je resolve.conf, mag ik aannemen?

ErikKosters
08/07/06, 15:04
Nee het ip wat in resolv.conf stond (dus ip naar hun dns server / nameserver) was verkeerd..

crazycoder
08/07/06, 15:06
Dat loggen wordt toch al door apache gedaan.. Weet niet wat je met die gegevens moet, anders kan je het beter achteraf een keer uit laten zoeken en het IP direct opslaan.

Met een beetje relationele database scheelt dat gelijk heel erg veel tijd voor de bezoeker en hoeft er maar 1 keer een naam en een IP bij elkaar gezocht te worden.

ErikKosters
08/07/06, 15:18
Oke, ik zal zelf wel even rond kijken. Bedankt voor het reageren.

localh
09/07/06, 00:14
't Is nu éénmaal een functie die niet aan te raden is om intensief te gebruiken (en zeker niet als je site druk wordt bezocht)

Kijk zeker ook ff in de commentaar op http://www.php.net/gethostbyaddr

Dit kan ook nog interessant zijn:

<quote>

...gethostbyaddr is very easy get timed-out and the script stucks there forever. Here is a fail-safe alternative, 1 sec max for timeout per IP.

function ar_gethostbyaddr($ip) {
$output = `host -W 1 $ip`;
if (ereg('.*pointer ([A-Za-z0-9.-]+)\..*',$output,$regs)) {
return $regs[1];
}
return $ip;
}

</quote>

Mark17
09/07/06, 00:48
Is dit ook later met het IP te doen? Zo ja dan kun je het ook in een cron zetten en eens per dag uitvoeren (bijv. 's nachts). Dan heb je toch de gegevens en niet de trage pagina's.

Kahil
09/07/06, 01:03
Ik heb dit ook voor gehad met mijn reseller. Een gebruiker had mambo geïnstalleerd en dit werkte perfect totdat hij 2 skins probeerde te installeren die blijkbaar niet werkten. Kan ook zijn dat hij ze verkeerd had geïnstalleerd, maar alles was toch opgelost na het verwijderen van de mambodatabase. Het kunnen echter nog tal van andere redenen zijn ook. Ik post maar even een ervaring die ik onlangs meemaakte.

ErikKosters
09/07/06, 11:27
Het werkt momenteel weer naar behoren. Misschien was het toch die nameserver..

crazycoder
09/07/06, 11:34
Het werkt momenteel weer naar behoren. Misschien was het toch die nameserver..
Nee, het probleem is een IMO verkeerd ontworpen applicatie.

Een haperende of trage nameserver zou een probleem kunnen geven, maar dat probleem heb je niet of minder als je applicatie minder afhankelijk is van dergelijke factoren.

ErikKosters
09/07/06, 11:38
Ik heb sowieso dat even weggehaald maar het werkt momenteel wel op die test pagina..

http://www.ek-hosting.nl/include/test.php