Das Ereignis MPM ist nicht genau das gleiche Design wie Nginx, aber es wurde eindeutig entworfen, um Keepalives haltbarer zu machen und statische Dateien schneller zu senden. Mein Verständnis ist, dass das Ereignis MPM ist ein wenig irreführend, weil:Warum funktioniert das Apache Event MPM schlecht?
- Obwohl die Verbindung kqueue geführt wird/epoll,
- einige sehr wichtige Module wie mod_gzip und mod_ssl blockieren/verbrauchen einen Thread, bis die Antwort ist, getan
- und das ist ein Problem für große Dateien, aber wahrscheinlich nicht für PHP-generierten HTML-Dokumente, etc.
Leider hält Apache Marktanteil zu verlieren, und die meisten Benchmarks für die Veranstaltung sind vernichtend MPM. Sind die Benchmarks fehlerhaft, oder schneidet das Event MPM gegen Nginx wirklich schlecht ab? Selbst unter diesen Einschränkungen sollte es im normalen Datenverkehr (nicht bösartig) und in kleineren Dateien mit Nginx konkurrieren. Zum Beispiel sollte es wettbewerbsfähig sein, PHP-generierte Dokumente über php-fpm auf langsamen Verbindungen zu bedienen, weil das Dokument gepuffert (auch wenn es ssl'd und gzip ist) und asynchron gesendet wird. Sowohl SSL- als auch Nicht-SSL-Verbindungen, die mit Komprimierung arbeiten oder nicht, sollten nicht wesentlich anders funktionieren als in Nginx bei einer solchen Arbeitslast.
Warum glänzt es nicht in verschiedenen Benchmarks? Was stimmt damit nicht? Oder was stimmt nicht mit den Benchmarks? Ist eine große Website es als Appell an die Autorität, die es ausführen kann?
Das wäre eine viel bessere Frage, wenn Sie die Benchmarks zitiert hätten, auf die Sie sich beziehen. Wenn Sie einfach eine schnelle Installation wünschen, wird Ap force + mod_php bei niedrigen bis mittleren Lasten konsistent Nginx übertreffen - bei starker Auslastung gibt es einen großen Unterschied. Aber wenn Sie sowohl Kapazität als auch Leistung wünschen, sollten Sie sich eine andere Architektur anschauen - ATS/nginx/lack vor Ihren Webservern. – symcbean
@symcbean Wahrscheinlich wahr. Ich muss nur noch einen finden (außer dem, der von Apache veröffentlicht wurde), der gut aussieht. Ich denke auch, dass du übergeneralisierst. ATS oder Varnish werden sehr wenig (oder schädlich) für dynamischen Inhalt sein, der nicht zwischengespeichert werden kann. –
Au contraire. Das Ausführen eines ereignisbasierten Servers vor einem Pre-Fork-Webserver bietet Schutz vor slororis-Angriffen und entlastet die Bereitstellung statischer Inhalte, wodurch Speicher gespart und die Kapazität erhöht wird. Die zusätzliche Latenz bei dynamischem Inhalt sollte in der Größenordnung von einigen Millisekunden liegen - kaum erderschütternd. In der Tat, wenn Sie den Reverse-Proxy näher an die Clients verschieben können, sollten Sie eine deutliche Verbesserung der Leistung sehen. – symcbean