Moin,
gegeben ist:
ein recht gut besuchtes Wiki (ca. 1,500 Hits/Std) auf einem Strato V-Server (512 MB) mit Apache 2.0.54 mit mod-security, MySQL 5.0.32 und PHP 5.2.1 (mod) unter Debian Sarge, 'administriert' (bin Anfänger) mit Webmin. Die Wiki läuft als Virtual Host (name based).
Apache (prefork) ist für 6 Clients konfiguriert, weil mir das als ein guter Kompromiss (Hits <-> Speicher) erscheint. Pro Client werden während des normalen Betriebes ungefähr 40 MB benötigt. MySQL 'verbraucht' mit den nicht veränderten Default-Einstellungen recht konstant ca. 140 MB. Das Speicherlimit für PHP ist auf 16 MB gesetzt.
Das Problem:
Wenn in der Wiki die Vorschau aktiviert, also der gerade bearbeitete Artikel neu dargestellt wird, schnellt der Speicherbedarf eines Apache-Prozesses kräftigst in die Höhe. Selbst bei kleinen Artikeln werden dann statt der üblichen ca. 40 MB schnell man 200 MB gebraucht. Bei längeren Artikeln können es auch mal 600 MB sein. Das Gleiche passiert zusätzlich auch beim Abspeichern.
Dadurch überschreite ich natürlich die garantierten 512 MB und komme nicht selten an das 1 GB-Limit heran. Wird es überschritten, bricht der Server zusammen -> Reboot.
Meine Fragen:
Warum braucht Apache bei der Vorschau und beim Abspeichern plötzlich soviel Speicher?
Kann ich den Speicher begrenzen und trotzdem noch die Wiki-Funktion erhalten?
Kann ich den Speicherbedarf optimieren? Wenn ja, wie?
Apache2.conf entspricht dem Default nach der Installation mit folgenden, von mir vorgenommenen Änderungen:
TimeOut 300
KeepAlive on
MaxKeepAliveRequests 250
KeepAliveTimeout 5
<IfModule prefork.c>
StartServers 4
MinSpareServers 2
MaxSpareServers 4
MaxClients 6
MaxRequestsPerChild 2000
</IfModule>
Danke im Voraus, Udo