Page 1 of 1
					
				Zugriffszeiten
				Posted: 2004-05-24 14:56
				by evgueni
				Ich habe mal eine vielleicht etwas komische Frage...  :-D 
Wie kann man bestimmen woran lange Zugriffszeiten bei einem Server liegen? 
Ich habe z.Z. folgendes Problem:
mein Server liefert pings von 80-100ms. Das ist ja eigentlich vollkommen in Ordnung, denn das ist ein Webserver, er wird nicht als Gameserver eingesetzt. Wenn ich allerdings ein PHP-Script aufrufe, dauert das manchmal bis zu 10 Sekunden bis ich das Ergebnis geliefert bekomme. Es werden dabei aber auch keine aufwendigen Berechnungen durchgeführt, lediglich ein Paar DB-Anfragen. Die Ausführungszeit dürfte normalerweise bei max. 0,1s liegen. top sagt mir, dass ca. 80% der CPU idle sind, das System ist also auch nicht überlastet. 
Ich denke also eigentlich dass das an der Anbindung liegt, aber wieso sehen dann die Pings so gut aus?
Hat jemand eine Idee? Gibt es irgendein Tool, mit dem man die Anbindung "richtig" testen kann?
Vielen Dank für Antworten schon im Voraus!
			 
			
					
				Re: Zugriffszeiten
				Posted: 2004-05-24 15:00
				by captaincrunch
				mtop
			 
			
					
				Re: Zugriffszeiten
				Posted: 2004-05-24 15:08
				by outofbound
				mysqladmin proc
querries anschauen
script anschauen.
			 
			
					
				Re: Zugriffszeiten
				Posted: 2004-05-24 15:13
				by evgueni
				Nein, an MySQL liegt es eindeutig nicht. Ich habe z.Z. das selbe Verhalten auch wenn ich eine Datei (z.B. ein Bild) vom Server herunterladen will.
			 
			
					
				Re: Zugriffszeiten
				Posted: 2004-05-24 16:49
				by Joe User
				Sind Komprimierungen ala mod_gzip aktiv?
Persistente DB-Verbindungen aktiviert?
Irgendein PHP-Cache aktiv?
			 
			
					
				Re: Zugriffszeiten
				Posted: 2004-05-24 16:52
				by marduk
				Nameservereinträge stimmen auf dem Server ? Wenn er versucht deine Adresse rückwärts aufzulösen und findet den angegebenen NS nicht haste auch ein Problem....
			 
			
					
				Re: Zugriffszeiten
				Posted: 2004-05-24 17:00
				by evgueni
				Joe User wrote:Sind Komprimierungen ala mod_gzip aktiv?
Persistente DB-Verbindungen aktiviert?
Irgendein PHP-Cache aktiv?
mod_gzip... also ich habe es zumindest nicht aktiviert. httpd.conf weiß auch nichts davon.
persistente DB-Verbindungen sind aktiviert und ich benutze sie auch
PHP-Cache habe ich auch nicht installiert.
Das ist eine normale Suse Linux 8 + Confixx2 insallation, ich habe bis jetzt nur MySQL4 draufgemacht und noch einige Config-Dateien angepasst.
 
			
					
				Re: Zugriffszeiten
				Posted: 2004-05-24 17:03
				by evgueni
				marduk wrote:Nameservereinträge stimmen auf dem Server ? Wenn er versucht deine Adresse rückwärts aufzulösen und findet den angegebenen NS nicht haste auch ein Problem....
Hm... Z.Z. läuft bei mir kein NameServer weil alle Domains doch auf NameServer vom Regstrar(schlund) zeigen.
 
			
					
				Re: Zugriffszeiten
				Posted: 2004-05-24 17:11
				by Joe User
				evgueni wrote:mod_gzip... also ich habe es zumindest nicht aktiviert. httpd.conf weiß auch nichts davon.
OK und belasse es bitte dabei.
evgueni wrote:persistente DB-Verbindungen sind aktiviert und ich benutze sie auch
Abstellen.
evgueni wrote:PHP-Cache habe ich auch nicht installiert.
OK.
evgueni wrote:und noch einige Config-Dateien angepasst.
Welche Dateien hast Du weshalb und wie geändert?
 
			
					
				Re: Zugriffszeiten
				Posted: 2004-05-24 17:24
				by evgueni
				Abstellen.
Das kann ich nicht. Meine Seite produziert soviele Anfragen an die DB, dass sie mittlerweile ohne persistente Verbindungen nicht mehr auskommt. Da würde sie doch sofort wegen mysql_max_connections rausfliegen.
...Config Dateien 
Ich habe nur die php.ini etwas verändert, dann hab ich in Confixx als httpd-special SafeMode ausgeschaltet, und noch die my.cnf für große Systeme genommen (der Server hat 2Gb RAM)
 
			
					
				Re: Zugriffszeiten
				Posted: 2004-05-25 21:09
				by evgueni
				Also ich gestern bissl mit der httpd.conf rumgespielt, habe solche Werte wie z.B. die max. Anzahl der httpd-Prozesse verändert. Ich hätte eigentlich nie gedacht, dass das etwas bewirken kann. 
Ich habe dann Apache neugestartet, und seitdem läuft der Server absolut fehlerfrei und auch wirklich megaschnell!
Ich danke euch für Hilfe!  

 
			
					
				Re: Zugriffszeiten
				Posted: 2004-05-25 21:24
				by oxygen
				evgueni wrote:Abstellen.
Das kann ich nicht. Meine Seite produziert soviele Anfragen an die DB, dass sie mittlerweile ohne persistente Verbindungen nicht mehr auskommt. Da würde sie doch sofort wegen mysql_max_connections rausfliegen.
 
Das ist aber ziemlich unlogisch, durch die Verwendung von pconnects erhöht sich die Anzahl der MySQL Verbindung drastisch. Jeweils eine Pro Prozess und mysql User. Wenn mal also z.b. MaxClients 150 eingestellt hat und die auch ausgenutzt werden und 10 Vhosts drauf liegen, die jeder einen MySQL User haben, hat man 1500 gleichzeitige MySQL Verbindung.
 
			
					
				Re: Zugriffszeiten
				Posted: 2004-05-25 22:03
				by evgueni
				Hm... 10 Vhosts? Ne, soviele habe ich nicht. Ich habe nur einen MySQL-User angelegt, er hat insgesamt 3 Datenbanken, davon wird bei den meisten Zugriffen nur eine beansprucht. 
Soweit ich weiß, wird keine zusätzliche persistente Verbindung aufgebaut, wenn eine solche (mit dem gleichen Usernamen) schon besteht. Das ist doch der Sinn davon. 
Ich weiß jetzt leider nicht so genau, ob Apache pro httpd-Prozess eine Verbindung aufbaut, oder ob das PHP eigenständig regelt, aber ich geh mal davon aus, denn ich kann in MySQL ständig mehrere Verbindungen zur DB sehen und nicht nur eine.
Wenn ich allerdings keine persistenten Verbindungen verwende, würden doch bei jedem Zugriff neue Verbindungen aufgebaut werden, dadurch entsteht zusätzlicher Verbindungsaufwand, längere Zugriffszeiten, und wenn es mal durch Zufall kommen sollte, dass die 300 Online-User gleichzeitig auf die Skripte zugreifen, habe ich wirklich ein Problem, ich meine 300x2 Seiten die gleichzeitig aufgerufen werden könnten, dann noch ein Paar Zugriffe von außen (also nicht registrierte User, die einfach die Page anschauen) könnten locker 800 gleichzeitige Verbindungen schaffen und das ist eindeutig mehr als maximale Anzahl der persistenten Verbindungen, die aufgebaut werden können. (Vorausgesetzung ist natürlich, dass nur ein MySQL-User verwendet wird)
Oder sehe ich das falsch?
			 
			
					
				Re: Zugriffszeiten
				Posted: 2004-05-26 11:08
				by Joe User
				Lies Dir die Referenz zu mysql_pconnect mal 
sehr genau durch, dann erkennst Du Deinen Denkfehler selbst: 
http://de2.php.net/manual/en/function.m ... onnect.php 
			
					
				Re: Zugriffszeiten
				Posted: 2004-05-26 15:45
				by evgueni
				Hm... Na gut, durchgelesen, obwohl ich das schon mehrmals gemacht habe (auch die deutsche Ã?bersetzung)
First, when connecting, the function would first try to find a (persistent) link that's already open with the same host, username and password. If one is found, an identifier for it will be returned instead of opening a new connection. 
Und genau das brauche ich doch! 
Dass die Verbindung nicht geschlossen wird, ist in meinem Fall nicht schlimm, weil ich sie doch ständig brauche.
 
			
					
				Re: Zugriffszeiten
				Posted: 2004-05-26 17:46
				by Joe User
				evgueni wrote:Dass die Verbindung nicht geschlossen wird, ist in meinem Fall nicht schlimm, weil ich sie doch ständig brauche.
Deutlicher geht es kaum: 
http://www.php.net/manual/en/features.p ... ctions.php 
			
					
				Re: Zugriffszeiten
				Posted: 2004-05-28 13:54
				by evgueni
				Also ich habe gestern nochmal darüber nachgedacht und habe noch eine Frage, um es komplett verstehen zu können:
Kann ein Apache-Kindprozess immer nur einen Zugriff abarbeiten, oder auch mehrere?
			 
			
					
				Re: Zugriffszeiten
				Posted: 2004-05-28 14:15
				by oxygen
				evgueni wrote:Also ich habe gestern nochmal darüber nachgedacht und habe noch eine Frage, um es komplett verstehen zu können:
Kann ein Apache-Kindprozess immer nur einen Zugriff abarbeiten, oder auch mehrere?
Immer eine Verbindung gleichzeitig. Da im Normalfall Keep Alive aktiviert ist, gibt es eine Child pro Client.
 
			
					
				Re: Zugriffszeiten
				Posted: 2004-05-28 15:22
				by evgueni
				achso, danke für die info!
Das war der Fehler in meinen Ã?berlegungen,
dann habe ich mit den persistenten Verbindungen wirklich 
nicht weniger Verbindungen zu mysql.
Aber ich lass sie trotzdem bestehen, denn z.Z. habe ich kein Problem
mit den max_connections und wenn ich persistente Verbindungen 
verwende entfällt doch der zusätzliche Verbindungsaufwand.
Danke für eure Hilfe!
			 
			
					
				Re: Zugriffszeiten
				Posted: 2004-05-28 15:43
				by Joe User
				evgueni wrote:wenn ich persistente Verbindungen 
verwende entfällt doch der zusätzliche Verbindungsaufwand.
Stattdessen muss ständig geprüft werden, ob bereits eine passende Conection besteht und ob diese zudem noch ungenutzt ist...
 
			
					
				Re: Zugriffszeiten
				Posted: 2004-05-28 15:57
				by evgueni
				ungenutzt??? verwirrend....
Also wenn ein httpd-Prozess eh nur einen Zugriff gleichzeitig abarbeiten kann, dann ist für ihn "seine" persistente Verbindung doch immer ungenutzt (am Anfang der Abarbeitung)! 
Ja, und ich glaube aber trotzdem, dass das Prüfen immer viel einfacher und schneller ist als das Anlegen bzw. Verbinden!