it-swarm.com.de

Geschwindigkeit von prefork + ruid2 mit mehr Verbindungen auf begrenztem Speicher

Derzeit verwende ich Apache auf einem Server mit WHM/Cpanel und verwende Prefork MPM mit Mod Ruid2, um PHP Seiten zu verarbeiten. Das Setup ermöglicht zwar eine sehr schnelle Ausführung, ich kann jedoch nur ca. 80 HTTP-Anforderungen gleichzeitig verarbeiten, da der Computer über 8 GB RAM verfügt.

Ich denke, Google ist damit nicht zufrieden genug. Ich bin der Meinung, dass meine Websites und der Server mit der Zeit gehen sollen. Ich muss die maximale Anzahl von Anfragen erhöhen, die gleichzeitig bearbeitet werden können.

Also habe ich mir überlegt, FastCGI mit PHP-FPM zu verwenden. Ich fing dann an, mit meiner httpd.conf zu spielen (natürlich auf meinem eigenen privaten Testserver), um zu sehen, wie man sie für mehrere Benutzer konfiguriert. Jeder Benutzer hat eine eigene Domain auf dem Server.

Im Moment zeige ich meine Konfiguration für einen Benutzer. Seine Website ist 127.0.0.1:81. /daemon ist ein Ordner, auf den der Benutzerdämon zugreifen kann.

Dies ist meine PHP-FPM-Konfigurationsdatei, die ich beim Ausführen des PHP-FPM-Daemons anwende.

[global]
pid = /daemon/x.pid
daemonize = yes
[www]
user = daemon
group = daemon
listen = /daemon/x.sock
listen.owner=daemon
listen.group=daemon
listen.backlog = 65534
pm = static
pm.max_children = 10
pm.max_requests = 10000
pm.status_path = /STAT
request_terminate_timeout = 100s
clear_env = no
security.limit_extensions=.php

Dies ist das Snippet in meiner httpd.conf-Datei

<virtualhost 127.0.0.1:81>
AddHandler php51 .php 
Action php51 /php51
Alias /php51 /daemon/1
FastCgiExternalServer /daemon/1 -socket /daemon/x.sock -pass-header Authorization -idle-timeout 120 -flush
<Directory "/daemon">
Order allow,deny
Allow from all
</Directory>
ServerName 127.0.0.1
</virtualhost>

Ich möchte versuchen, diese Zeilen so zu komprimieren, dass beim Ausführen einer Mehrbenutzer-Einrichtung weniger Eingaben erforderlich sind.

Da ich eine gewisse Redundanz verspürte, ersetzte ich:

Alias /php51 /daemon/1
FastCgiExternalServer /daemon/1 -socket /daemon/x.sock -pass-header Authorization -idle-timeout 120 -flush

mit:

# Alias /php51 /daemon/1
FastCgiExternalServer /php51 -socket /daemon/x.sock -pass-header Authorization -idle-timeout 120 -flush

und Apache neu gestartet und versucht, auf eine PHP-Datei zuzugreifen, und mir wurde mitgeteilt, dass die Datei nicht gefunden wurde, aber ich habe die Datei selbst nie geändert und in beiden Tests dieselbe URL verwendet.

Außerdem habe ich im Apache-Protokoll Folgendes erhalten:

File does not exist: /usr/local/Apache2/htdocs/php51

Als ich entfernte:

<Directory "/daemon">
Order allow,deny
Allow from all
</Directory>

Ich habe "Erlaubnis verweigert" erhalten.

Ich musste diese Konfiguration nie hinzufügen, wenn ich Prefork mit ruid2 verwendete.

Gibt es eine minimalere Konfiguration, die ich verwenden kann, als eine Aktion zu definieren, die zusätzlich zum Definieren eines externen Servers verwendet wird? Ich möchte die Anzahl der Verbindungen erhöhen, die Apache verarbeiten kann, ohne den gesamten Speicher oder sogar die CPU zu belasten, und ich möchte auch PHP verwenden können.

2
Mike

Es gibt ziemlich viele Fragen in diesem Beitrag.

wenn ich ein Mehrbenutzer-Setup durchführe, muss ich weniger tippen.

Das ist nicht der Weg, um das Problem zu lösen. Sie haben bereits viele andere Dinge, die Sie tun sollten, um einen neuen Benutzer zu integrieren. WHM/Cpanel ist ein sehr grundlegendes Tool, das für Benutzer entwickelt wurde, die grundlegende Websites ausführen und nicht über das Fachwissen oder die Zeit zum Konfigurieren eines Webservers verfügen. Wenn Sie sich Gedanken über die Zeit machen, die Sie zum Kopieren, Bearbeiten und Einfügen eines kleinen Konfigurationsblocks wie diesem benötigen, sollten Sie darüber nachdenken, wie Sie alle lösen Schritte zum Einrichten eines neuen Kontos/Dienstes; Sie sollten sie skripten.

Es ist durchaus möglich, ein Skript unter Linux oder Unix einzurichten (auch unter MSWindows, aber es ist eine Menge mehr Arbeit), eine Skeleton-Website zu konfigurieren, Apache und PHP-FPM davon zu erzählen. Fügen Sie DNS- und E-Mail-Einträge hinzu, konfigurieren Sie eine MySQL-Datenbank und Benutzer und vieles mehr über ein einfaches Shell-Skript. Und die Menge des Inhalts, der geändert werden muss, ist dann unerheblich.

Ich denke, Google ist damit nicht zufrieden genug

Solange Sie in der Lage sind, die Anfragen zu bearbeiten, kümmert sich Google nicht viel um die Leistung (ja, dies hat Auswirkungen auf das Ranking, ist jedoch sehr gering). OTOH-Benutzer kümmern sich um eine Menge mehr.

PHP-FPM ist eine vernünftige Methode, um Ihre Kapazitäts- und Leistungsprobleme zu lösen, ohne dass Sie Ihre Serverarchitektur radikal umgestalten müssen.

Ich möchte die Anzahl der Verbindungen erhöhen, die Apache verarbeiten kann, ohne den gesamten Speicher oder sogar die CPU zu verbrauchen, und ich möchte auch in der Lage sein, PHP zu verwenden.

Das kann hier nicht sinnvoll beantwortet werden - es ist viel zu weit gefasst. Obwohl es hauptsächlich um Leistung und nicht um Kapazität geht, können Sie mit diesem Buch besser verstehen, wie Sie die vorhandene Infrastruktur besser nutzen können. Weitere Anleitungen zu Kapazität finden Sie auf der zugehörigen Website.

1
symcbean