Zugriffszeiten
Zugriffszeiten
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!
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!
-
captaincrunch
- Userprojekt

- Posts: 7066
- Joined: 2002-10-09 14:30
- Location: Dorsten
- Contact:
Re: Zugriffszeiten
mtop
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
-
outofbound
- Posts: 470
- Joined: 2002-05-14 13:02
- Location: Karlsruhe City
Re: Zugriffszeiten
mysqladmin proc
querries anschauen
script anschauen.
querries anschauen
script anschauen.
Re: Zugriffszeiten
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
Sind Komprimierungen ala mod_gzip aktiv?
Persistente DB-Verbindungen aktiviert?
Irgendein PHP-Cache aktiv?
Persistente DB-Verbindungen aktiviert?
Irgendein PHP-Cache aktiv?
PayPal.Me/JoeUser ● FreeBSD Remote Installation
Wings for Life ● Wings for Life World Run
„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
Wings for Life ● Wings for Life World Run
„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
Re: Zugriffszeiten
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
mod_gzip... also ich habe es zumindest nicht aktiviert. httpd.conf weiß auch nichts davon.Joe User wrote:Sind Komprimierungen ala mod_gzip aktiv?
Persistente DB-Verbindungen aktiviert?
Irgendein PHP-Cache aktiv?
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
Hm... Z.Z. läuft bei mir kein NameServer weil alle Domains doch auf NameServer vom Regstrar(schlund) zeigen.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....
Re: Zugriffszeiten
OK und belasse es bitte dabei.evgueni wrote:mod_gzip... also ich habe es zumindest nicht aktiviert. httpd.conf weiß auch nichts davon.
Abstellen.evgueni wrote:persistente DB-Verbindungen sind aktiviert und ich benutze sie auch
OK.evgueni wrote:PHP-Cache habe ich auch nicht installiert.
Welche Dateien hast Du weshalb und wie geändert?evgueni wrote:und noch einige Config-Dateien angepasst.
PayPal.Me/JoeUser ● FreeBSD Remote Installation
Wings for Life ● Wings for Life World Run
„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
Wings for Life ● Wings for Life World Run
„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
Re: Zugriffszeiten
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.Abstellen.
...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
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!
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
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.evgueni wrote: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.Abstellen.
Re: Zugriffszeiten
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?
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
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
PayPal.Me/JoeUser ● FreeBSD Remote Installation
Wings for Life ● Wings for Life World Run
„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
Wings for Life ● Wings for Life World Run
„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
Re: Zugriffszeiten
Hm... Na gut, durchgelesen, obwohl ich das schon mehrmals gemacht habe (auch die deutsche Ã?bersetzung)
Dass die Verbindung nicht geschlossen wird, ist in meinem Fall nicht schlimm, weil ich sie doch ständig brauche.
Und genau das brauche ich doch!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.
Dass die Verbindung nicht geschlossen wird, ist in meinem Fall nicht schlimm, weil ich sie doch ständig brauche.
Re: Zugriffszeiten
Deutlicher geht es kaum: http://www.php.net/manual/en/features.p ... ctions.phpevgueni wrote:Dass die Verbindung nicht geschlossen wird, ist in meinem Fall nicht schlimm, weil ich sie doch ständig brauche.
PayPal.Me/JoeUser ● FreeBSD Remote Installation
Wings for Life ● Wings for Life World Run
„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
Wings for Life ● Wings for Life World Run
„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
Re: Zugriffszeiten
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?
Kann ein Apache-Kindprozess immer nur einen Zugriff abarbeiten, oder auch mehrere?
Re: Zugriffszeiten
Immer eine Verbindung gleichzeitig. Da im Normalfall Keep Alive aktiviert ist, gibt es eine Child pro Client.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?
Re: Zugriffszeiten
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!
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
Stattdessen muss ständig geprüft werden, ob bereits eine passende Conection besteht und ob diese zudem noch ungenutzt ist...evgueni wrote:wenn ich persistente Verbindungen
verwende entfällt doch der zusätzliche Verbindungsaufwand.
PayPal.Me/JoeUser ● FreeBSD Remote Installation
Wings for Life ● Wings for Life World Run
„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
Wings for Life ● Wings for Life World Run
„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
Re: Zugriffszeiten
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!
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!
