2016-04-05 8 views
4

HHVM hat einen eingebauten Server, Proxygen. Sie können HHVM mit dem Proxygen-Server ausführen oder im FastCGI-Modus ausführen und einen anderen Server wie nginx oder apache verwenden, um Webanforderungen zu bearbeiten.Ist es leistungsfähiger, Proxygen oder NGINX + FastCGI lokalen Socket mit HHVM zu verwenden?

Ich kann keine Benchmarks oder autorisierende Quelle finden, die angibt, welche der beiden Optionen am besten funktioniert. Natürlich könnte ich zwei Systeme provisionieren, verschiedene Belastungen unter verschiedenen Nebenläufigkeitskombinationen manuell testen und einen Benchmark zusammenstellen, aber ich würde lieber die Arbeit vermeiden, wenn jemand schon einen solchen Vergleich gemacht hat.

Weiß jemand im Allgemeinen, welche die bessere Wahl vom reinen Leistungsstandpunkt ist?

+0

Wissen Sie, dass das, was Sie ausführen wollen, so viel Ladung verursacht, dass es wichtig ist? Wenn nicht, dann schlage ich vor, dass Sie sich nicht darum kümmern, bis es ein Problem wird. Warum gibt es keine maßgeblichen Daten darüber, welche besser ist, weil sie nicht existiert? Wenn man in allen Fällen objektiv besser wäre als die andere, gäbe es keinen Grund für den anderen, zu existieren. In bestimmten Fällen wird der eine besser, in anderen Fällen der andere besser. Sie müssen beide aufstellen und sie selbst vergleichen, um Zahlen zu erhalten, die für Ihren Fall relevant sind, ein weiterer Grund, sich darüber noch keine Gedanken zu machen. – GordonM

Antwort

1

Ich habe keine Messung durchgeführt. In der Theorie wäre der Proxygen-Server jedoch leistungsfähiger, da er im selben Prozess wie die PHP-Worker-Threads ausgeführt wird, wodurch einige Overhead-Interprozess-Kommunikation vermieden wird. Proxygen-Server wird bei Facebook verwendet, und einige Anstrengungen werden unternommen, um ihn zuverlässiger zu machen, z. B. Schutzmechanismen, wenn der JIT-Compiler nicht vollständig aufgewärmt ist. Diese sollten jedoch für andere Benutzer keine Rolle spielen. Wenn Sie bereits Ihr favorisiertes Apache/Nginx-Setup haben und nicht die Zeit für die Anpassung von Einstellungen für einen anderen HTTP-Server aufwenden möchten, verwenden Sie FastCGI.