mabue88
Goto Top

Seitenaufbau beschleunigen - Apache Webserver

Hallo,

und schon wieder habe ich eine Frage, die ich selbst nicht beantworten kann.
Ich habe einen Apache-Server. Eine Webseite (Übersichtsseite) zeigt eine Übersicht diverser Informationen an.
Für die Darstellung der Informationen wurde eine HTML erstellt (Informationsseite), die in Abhängigkeit von den empfangenen URL-Parametern die jeweiligen Informationen anzeigen. Der Aufbau dieser Informationsseiten ist ziemlich schlicht. In einem übergeordneten DIV befinden sich 4 weitere DIVs, mit denen die Informationen positioniert werden.

Insgesamt befinden sich auf der Übersichtsseite rund 80 Objects, in welchen die jeweiligen Informationsseiten geladen werden.

Das funktioniert alles soweit.

Mich stört jedoch, dass das Laden der Übersichtsseite bis zu 5 Sekunden benötigt.
Kann man da was machen?

Der Javascript-Code in den Informationsseiten habe ich bereits ans Ende des Bodys gehängt!

Danke
Gruss
mabue

Content-ID: 256315

Url: https://administrator.de/contentid/256315

Ausgedruckt am: 13.11.2024 um 22:11 Uhr

Dani
Dani 30.11.2014 aktualisiert um 17:57:42 Uhr
Goto Top
Guten Abend mabue,
handelt es sich bei den 80 Objekten um reinen HTML-Code oder wird durch die Parameter im Hintergrund PHP-Skripte o.ä. aufgerufen?
Schau mal mit dem Firefox und den Entwicklungstools (F12) -> Netzwerkanalyse was solange zum Laden braucht.

Grundsätzlich ist der Apache-Webserver in der Standardkonfiguration nicht der Schnellste.
  • Du könntest z.B. nicht benötige Module (apache2ctl -M) des Apache's deaktivieren.
  • Vermeiden von .htaccess - Dateien. Wird bei jedem Zugriff geprüft und verarbeitet.
  • HTTP Komprimierung (Stichwort: gzip)
  • Deaktivieren von DNS Lookups.

Ob die einzelnen Verbessungen gebracht haben, kannst du mit dem Tool ab2 testen (Benchmark).
Ansonsten könntest du vor den Apache den Nginx oder lighttpd als Reverse Proxy schalten. Das macht jede nach Content auch nochmal etwas aus.
Am Schluss gibt es noch Caching-System wie APC, Varnish und Memcached.


Gruß,
Dani
wiesi200
wiesi200 30.11.2014 um 17:55:12 Uhr
Goto Top
Hallo,

Apache rauswerfen?

Du müsstest mal genau analysieren was da so langsam lädt dann kann man optimieren.
mabue88
mabue88 13.02.2015 um 11:29:32 Uhr
Goto Top
Hallo,

will hier mal noch meine Lösung verewigen.

Es lag nicht am Apache, sondern an meiner Datenbank. Das Laden der Daten aus der Datenbank hat so lange gedauert.
Um das zu beschleunigen habe ich diese etwas modifiziert. Seither ist gut.

Trotzdem danke für eure Unterstützung!
Dani
Dani 13.02.2015 um 11:31:06 Uhr
Goto Top
Vielen Dank für die Rückmeldung.

Um das zu beschleunigen habe ich diese etwas modifiziert. Seither ist gut.
Willst du uns verrraten was du im Detail optimiert hast? Für die Nachwelt...


Gruß,
Dani
mabue88
mabue88 13.02.2015 um 11:40:27 Uhr
Goto Top
Kann ich gerne machen...

Die ganze Datenbank ist ziemlich abstrakt designed. Das soll heissen, dass die Daten ziemlich zerstreut in der Datenbank liegen. Es wird sehr viel mit Referenzen gearbeitet.

In die Datenbank werden beispielsweise Meldungen geschrieben. Jede der Meldung kann beliebig viele "Attribute" besitzen. Entsprechend gibt es eine Tabelle "meldungen" und eine Tabelle "meldungen_has_attribute".

Auf der Webseite wird aber nur eine bestimme Auswahl der Attribute angezeigt. Diese mussten aber bei jedem Aufruf immer wieder über die Referenzen zusammengesucht werden, was sich bei mir schon bemerkbar machte.

Jetzt habe ich eine Tabelle erstellt, die genau die Informationen besitzt, die auf der Webseite dargestellt werden sollen. Dabei liegen die Attribute nicht mehr als Referenzen auf andere Datensätze vor, sondern werden direkt in einer Spalte gespeichert.

Die Zugriffszeit auf die Datenbank konnte ich damit wesentlich verkürzen.

Ich weiss, jetzt habe ich die Daten doppelt vorliegen, aber das nehme ich zugunsten der Performance in Kauf...