sonst liest man ja eher das Gegenteil. Ich habe das Problem, dass Teile meiner PHP-Webanwendung langsam laufen, aber der Server überhaupt nicht ausgelastet ist. Nun stellt sich mir die Frage, wie ich den Apache optimieren kann. Ich weiß, ohne weitere Kenntnisse eurerseits ist das schwierig, aber vielleicht kennt ja jemand allgemeine Herangehensweisen, für Ursachenenanalyse.
Die Webanwendung läuft mit Apache und PostgreSQL. Der Webserver ist eine Debian 7.0-VM mit 8 GB RAM und 2 CPUs (MHz unbegrenzt).
Es ist immer maximal 1 GB RAM auf dem gesamten System ausgelastet, davon 8 Apache2-Prozesse mit je 20 MB. Die CPUs werden zu 50% ausgelastet.
Die Ladezeiten der Problemseiten liegen bei ca. 3sek. Mit Firebug kann ich sehen, dass davon die "warten"-Zeit 90% der Zeit ausmacht. Öffne ich 2 mal die gleiche Seite nebeneinander liegen die Wartezeiten sogar bei 5-10 sek, am RAM auf dem Server tut sich rein gar nichts. Kommentiere ich einige Codezeilen aus (SQL-Abfragen bleiben erhalten), lädt die Anwendung schneller. Ich denke daher nicht, dass es am PostgreSQL liegt.
Auf meiner lokalen Testmaschine mit eigenem Apache (Windows) lädt die Seite 1-2 sek schneller und da wurden die Standardeinstellungen belassen.
Die Apache-Config sieht folgendermaßen aus (alle unnötigen Module sind deaktiviert):
- Code: Select all
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 6
MaxSpareServers 8
ServerLimit 100
MaxClients 100
MaxRequestsPerChild 1000
</IfModule>
HostnameLookups Off
PHP-Config
- Code: Select all
memory_limit = 512M
Wie kann ich jetzt also herangehen, um den Apache zu mehr Auslastung zu bringen?
Vielen Dank vorab.