Optimierung von Apache und MySQL unter Linux Xen VPS

10

Ich habe einen Xen Virtual Private Server (VPS) mit Ubuntu 8.10 und 128 MB RAM.

Ich habe über Google mehrere Seiten zum Optimieren von Apache und MySQL für VPS mit geringem Arbeitsspeicher gefunden, die jedoch widersprüchliche Informationen enthalten. Ich frage also Server Fault: Wie optimiert man Apache und MySQL für eine VPS-Konfiguration mit wenig Speicher?


Einige Leute haben vorgeschlagen, Nginx anstelle von Apache zu verwenden. Ich werde das untersuchen, aber ich würde es vorziehen, wenn möglich bei Apache zu bleiben, um nicht alles über das Konfigurieren von Anwendungsstapeln auf einem (mir) unbekannten Webserver lernen zu müssen.

Kristopher Johnson
quelle

Antworten:

7

Nginx ist großartig, aber wenn Sie bei Apache bleiben möchten, können Sie es gegenüber den Standardeinstellungen erheblich verkleinern:

  • Verwenden Sie das Worker-MPM anstelle von Prefork (mit Worker-MPM verfügt Apache nicht mehr über das Modell "Prozess pro Verbindung").
  • Sehen Sie sich alle freigegebenen Module an, die Sie laden, und entfernen Sie alle nicht benötigten Module.
  • Vermeiden Sie das Einbetten von Anwendungsservern in Apache (z. B. mod_python, mod_php usw.), wenn Sie dies vermeiden können. Führen Sie stattdessen Anwendungsserver in einem separaten Prozess aus und verfügen Sie über einen Apache-Proxy (dh verwenden Sie für Python-Code mod_wsgi im Daemon-Modus). Auf diese Weise werden Ihre Apache-Threads, die lediglich statischen Inhalt bereitstellen, nicht unnötig aufgebläht.
  • Reduzieren Sie in Ihrer Apache-Konfiguration die Einstellungen für StartServer, MaxClients, MinSpareThreads und MaxSpareThreads. Abhängig von Ihrer erwarteten Last können Sie diese gegenüber den Standardeinstellungen manchmal um den Faktor fünf oder mehr reduzieren.
Carl Meyer
quelle
2

Wenn Sie Speicherbeschränkungen haben, würde ich empfehlen, nginx als Alternative zu verwenden, wenn dies überhaupt möglich ist. Es verbraucht viel weniger Speicher als Apache und kann je nach Ihren Anforderungen alles sein, was Sie benötigen.

Als Bonus ist Nginx in der Regel deutlich schneller als Apache. =)

Jauder Ho
quelle
2

Ditch Apache, der Prozess pro Verbindungsmodell wird mit Ihrem VPS mit niedrigem Speicher nicht abgespielt.

Ich schlage Nginx als Ersatz vor.

Dave Cheney
quelle
4
Dies ist nur ein Problem für 1.3. apache 2.x ermöglicht steckbare Prozessmodule einschließlich MPM, die viele Threads in einer kleinen Anzahl von Prozessen ausführen. Alles nach Geschmack einstellbar
Vagnerr
Ja, aber Nginx wird immer noch ein kleinerer Prozess sein
Dave Cheney
2
Ja, aber das haben Sie nicht gesagt