So aktivieren Sie Apache MPM Prefork, um die Leistung zu verbessern

Der Apache-Webserver ist einer der beliebtesten auf dem Planeten. Nach dem Auspacken erledigt Apache einen ziemlich soliden Job im Umgang mit durchschnittlichem Datenverkehr. Sobald Sie jedoch mit einer überdurchschnittlichen Belastung beginnen, kann es unter bestimmten Umständen, wie z. B. der Ressourcenkapazität und der Komplexität der bereitgestellten Websites, zu Problemen kommen. Wenn dies beschreibt, was Sie erleben, ist das Prefork-Modul für Multi-Processing-Module (MPM) möglicherweise in Ordnung.
Das MPM Prefork-Modul verwendet einen einzelnen Steuerungsprozess, der für das Starten untergeordneter Prozesse verantwortlich ist. Diese untergeordneten Prozesse warten auf Verbindungen und dienen ihnen, wenn sie ankommen. MPM Prefork ist selbstregulierend. Wenn Sie also keinen viel größeren Overhead benötigen, gibt es kaum einen Grund, die Standardkonfigurationen anzupassen. Sie müssen dieses Modul jedoch aktivieren, da es sofort deaktiviert ist.
Ich werde Ihnen zeigen, wie Sie das MPM Prefork-Modul unter Apache aktivieren. Ich werde auf Ubuntu Server 18.04 demonstrieren.
Was du brauchen wirst
Die einzigen Dinge, die Sie benötigen, um dieses Modul zu aktivieren, sind:
- Eine laufende Instanz von Ubuntu Server 18.04
- Apache installiert und ausgeführt
- Ein Benutzer mit Sudo-Berechtigungen
- Eine Netzwerkverbindung
So aktivieren Sie die mpm_prefork
Höchstwahrscheinlich ist das Modul mpm_prefork bereits auf Ihrer Apache-Instanz installiert. Standardmäßig ist es jedoch nicht aktiviert.
Apache2 unterstützt sowohl Prefork als auch Worker. Dies sind beide MPMs, die sich jedoch stark voneinander unterscheiden. Das Prefork-Modul erstellt beim Start eine Reihe von untergeordneten Prozessen. Jeder untergeordnete Prozess verarbeitet nur einen Thread. Umgekehrt verwendet der Worker untergeordnete Prozesse, die viele Threads pro Prozess erzeugen, wobei jeder Thread bereit ist, neue Anforderungen anzunehmen. Obwohl Prefork erheblich mehr RAM benötigt, ist es das sicherste Modul und sollte verwendet werden, wenn nicht threadsichere Bibliotheken verwendet werden.
Geben Sie den folgenden Befehl ein, um zu überprüfen, ob das Prefork-Modul geladen ist:
apache2ctl -M | grep prefork
Wenn Sie keine Ergebnisse sehen, wird Prefork nicht geladen. Bevor Sie es laden, müssen Sie zuerst das Modul mpm_event entladen, da es zu Konflikten kommt. Geben Sie zum Entladen von mpm_event den folgenden Befehl ein:
sudo a2dismod mpm_event
Starten Sie Apache mit dem folgenden Befehl neu:
sudo systemctl apache2 neu starten
Jetzt können Sie mpm_prefork mit dem folgenden Befehl laden:
sudo a2enmod mpm_prefork
Starten Sie Apache erneut mit dem folgenden Befehl neu:
sudo systemctl apache2 neu starten
So konfigurieren Sie die mpm_prefork
Wenn Ihr Webserver möglicherweise keinen erheblichen Overhead benötigt, können Sie Anpassungen an der Prefork-Konfiguration vornehmen. Geben Sie dazu den folgenden Befehl ein:
sudo nano /etc/apache2/mods-available/mpm_prefork.conf
In dieser Datei sehen Sie die folgenden Optionen:
StartServer 5 MinSpareServer 5 MaxSpareServer 10 MaxRequestWorkers 150 MaxConnectionsPerChild 0
Möglicherweise möchten Sie diese Zahlen erheblich erhöhen. Wenn Sie wissen, dass Ihr Server einer größeren Last ausgesetzt sein wird (und Sie über genügend RAM verfügen), können Sie diese Konfiguration folgendermaßen ändern:
StartServer 4 MinSpareServer 3 MaxSpareServer 40 MaxRequestWorkers 200 MaxConnectionsPerChild 10000
Stellen Sie sicher, dass Sie diese Nummern entsprechend den Anforderungen Ihrer Hardware und der erwarteten Last bearbeiten. Speichern und schließen Sie die Datei. Starten Sie Apache mit dem folgenden Befehl neu:
sudo systemctl apache2 neu starten
Zu diesem Zeitpunkt ist mpm_prefork aktiviert und konfiguriert. Wenn Sie dies testen möchten, können Sie ein Perl-Skript ausführen. Bitte seien Sie dabei vorsichtig, da es sich um ein Perl-Skript handelt und Sie es einfach nie erfahren. Möglicherweise möchten Sie das Skript herunterladen und zuerst durchkämmen (um nach schändlichem Code zu suchen).
Laden Sie das Skript mit diesem Befehl herunter:
wget https://raw.githubusercontent.com/richardforth/apache2buddy/master/apache2buddy.pl
Führen Sie den folgenden Befehl aus, nachdem Sie ihn durchgesehen und für vertrauenswürdig befunden haben:
sudo perl apache2buddy.pl
Nach Abschluss des Befehls sollte ein Bericht über die Speichernutzung von Apache angezeigt werden ( Abbildung A ).
Abbildung A.
Post mpm_prefork configuration memory usage." data-credit="" rel="noopener noreferrer nofollow">
Verwendung des Konfigurationsspeichers nach mpm_prefork.
Und da hast du es. Apache mpm_prefork macht jetzt seine Sache. Stellen Sie sicher, dass Sie Ihre Konfiguration so anpassen, dass sie den Anforderungen Ihrer Umgebung am besten entspricht. Dieses Modul wird Ihnen gute Dienste leisten.