Hohe Latenz bei Apache2

  • Hallo,

    ich benutze meinen Pi als Webserver zur lokalen Entwicklung.

    Ich habe vor allem bei Wordpress-Seiten eine latenz von ~10 Sekunden bei jedem Seitenaufruf.

    Wie kann ich rausfinden, was genau die Latenz verursacht (MySQL, Apache selbst, DNS)?

    Könnt ihr mir einen Tipp geben?

    Danke.

  • Moin,

    was sagt denn ein MySQL Connect auf der Konsole?
    mysql -h localhost -u <username> -p <datenbankname>

    Dauert das schon lange? Dann kannst Du mal kontrollieren ob der hostname vom pi in der /etc/hosts eingetragen ist und auch richtig beim MySQL User eingetragen ist. ggf. gucken ob in der nsswitch.conf files,dns für hosts eingetragen ist. So das nicht erst DNS und dann erst die /etc/hosts ausgelesen wird.

    Wenn das zügig geht, dann checken ob es am Apache liegt. Resolve Hostnames ausschalten usw.
    Danach dann die Verbindung vom Apache zum PHP und vom PHP zur MySQL.

    PHP als Modul, CGI, FastCGI oder PHP-FPM?

    Wenn Du da nichts findest kannst Du den Apache mal neustarten mit einem strace und lass ihn dabei Follow Forks machen.
    strace -ff /etc/init.d/apache2 restart

    Wirft eine Menge Output raus, aber damit siehst Du was er macht und wann er wo wie lange auf etwas wartet.

    Du solltest beim Aufrufen auch mal einen Blick ins MySQL Logfile werfen. Da sieht man auch gut wann was abgerufen wird. Logfiles werden in der Regel geschrieben wenn etwas fertig ist. Heisst wenn Du die Seite aufrufst und es 10 Sekunden dauert und dann auch erst im MySQL Logfile aufschlägt wird es ggf. auch an der MySQL liegen. Wie oben geschrieben kann das auch an einer simplen Hostauflösung liegen, da die MySQL auf die DNS Antwort wartet.

  • Moin,

    ich vermute, dass es MySQL ist. MySQL "krallt" sich alle noch freien Ressourcen, die zur Verfügung stehen. Daher ist bei aktivem MySQL - Server jede Operation mit dem Webserver entsprechend langsam.

    Wordpress hat eine riesen Datenbankstruktur im Hintergrund, eventuell könnte das in Verbindung mit den ohnehin schon begrenzten Ressourcen des Pi eine Ursache darstellen.

    Gruß
    Fury


  • Moin,

    was sagt denn ein MySQL Connect auf der Konsole?
    mysql -h localhost -u <username> -p <datenbankname>

    Dauert das schon lange? Dann kannst Du mal kontrollieren ob der hostname vom pi in der /etc/hosts eingetragen ist und auch richtig beim MySQL User eingetragen ist. ggf. gucken ob in der nsswitch.conf files,dns für hosts eingetragen ist. So das nicht erst DNS und dann erst die /etc/hosts ausgelesen wird.

    Geht fix.

    [quote pid='65021' dateline='1392886366']
    Wenn Du da nichts findest kannst Du den Apache mal neustarten mit einem strace und lass ihn dabei Follow Forks machen.
    strace -ff /etc/init.d/apache2 restart
    [/quote]

    Da kommt eine ellenlange Liste mit gettimeofday({..., ...}, NULL) = 0

    [quote pid='65021' dateline='1392886366']
    Du solltest beim Aufrufen auch mal einen Blick ins MySQL Logfile werfen. Da sieht man auch gut wann was abgerufen wird. Logfiles werden in der Regel geschrieben wenn etwas fertig ist. Heisst wenn Du die Seite aufrufst und es 10 Sekunden dauert und dann auch erst im MySQL Logfile aufschlägt wird es ggf. auch an der MySQL liegen. Wie oben geschrieben kann das auch an einer simplen Hostauflösung liegen, da die MySQL auf die DNS Antwort wartet.
    [/quote]

    Die MySQL logs sind alle komplett leer.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!