¿Debo usar PHP HHVM + Apache2 o PHP7 + Apache2 o HHVM + NginX o PHP7 + Nginx para obtener el mejor rendimiento?

No estoy seguro de todas las alternativas enumeradas en su pregunta.

Comparando HHVM con PHP7, puede ver el artículo aquí: HHVM vs PHP 7 – La competencia se acerca – Kinsta. No hay mucho para elegir entre los dos, y en caso de que tenga un sitio web de drupal, la elección se vuelve más fácil con PHP7.

Al llegar a la parte de Apache vs Nginx, puede ver otro artículo aquí: NGINX vs. Apache: nuestra visión de una pregunta antigua. Este artículo lo pone claramente a favor de Nginx. Citando la línea de este artículo:

Apache es como Microsoft Word. Tiene un millón de opciones pero solo necesitas seis. NGINX hace esas seis cosas, y hace cinco de ellas 50 veces más rápido que Apache.

En una nota personal, he usado Apache + PHP y Nginx + PHP (PHP-FPM) y según mi experiencia, he descubierto que PHP-FPM y Nginx proporcionan el mejor rendimiento.

Espero que esto te ayude a tomar una decisión informada.

No sé mucho sobre hhvm … pero puedo ayudarte con apache, nginx y php7.

Utilicé la combinación php7 + nginx y logré alrededor de 1 millón de solicitudes por segundo en nuestras pruebas de esfuerzo y carga mixta.

También probé lo mismo con apache2, Apache enfrenta lo que se llama el problema C10K: estrictamente hablando, dificultad para admitir más de 10,000 conexiones a la vez. (Apache está muy por debajo de este objetivo). Apache asigna memoria a cada conexión adicional, por lo que tiende a comenzar a intercambiarse en el disco a medida que aumentan las conexiones concurrentes. Esto envía el rendimiento del sitio a una espiral descendente y puede provocar que el servidor completo se bloquee o se congele.

Al contrario de eso, NGINX ejecuta un ciclo de eventos en curso que maneja las solicitudes a medida que ocurren, sin asignar recursos a los solicitantes.

Nginx también tiene un fuerte mecanismo de almacenamiento en caché. Se puede utilizar para almacenar en caché archivos estáticos y dinámicos. CloudFlare, un CDN ampliamente utilizado, utiliza NGINX como sistema operativo.

Se dice que PHP 7 es el doble de rápido que las versiones anteriores de PHP y que usa considerablemente menos memoria. Utiliza un mecanismo de árbol de sintaxis abstracta para la compilación que aumenta el rendimiento. También tiene una función interna de almacenamiento en caché de código de operación. También puede usar la función de generador (rendimiento) para realizar el procesamiento paralelo cooperativo.

Para obtener el mejor rendimiento, debe ajustar su base de datos, el código y la conexión de la base de datos de mantenimiento de la lógica siempre ayuda a aumentar en todo momento.

Memcache o redis Siempre juega un papel importante en el almacenamiento en caché de los resultados, lo que aumentará su rendimiento.

Por último, el factor clave más importante es la infraestructura. Necesitará una CPU de alta gama para lograr el mejor rendimiento.

Rendimiento PHP 7 con NGINX: servicio web y almacenamiento en caché

Nginx es siempre la opción preferida, es más difícil de configurar pero mucho mejor como servidor web en general. HHVM es efectivamente PHP5.xy, por lo tanto, tiene una mejor compatibilidad si la aplicación puede ejecutarse con él en comparación con PHP7, que es más reciente. HHVM funciona de manera diferente, pero algunas aplicaciones no pueden ejecutarse sin al menos modificaciones, las aplicaciones estándar están bien, como Magento, WordPress, Drupal, pero las extensiones pueden estar mal escritas y no son compatibles.

Luego se reduce a la compatibilidad, si está ejecutando muchas extensiones PHP 5.x es probablemente mejor, con extensiones mínimas y escalabilidad HHVM es mejor, en la mayoría de los casos PHP7 se encuentra en algún punto intermedio. Esto significa que debe realizar más pruebas de regresión con PHP7 para asegurarse de que funciona.

Alquilamos clústeres de múltiples nodos para Magento, Drupal, WordPress que usan PHP5.x para el administrador (estabilidad), HHVM para el usuario (escalabilidad) y PHP7 para el procesamiento por lotes (aplicación específica). Significa que tenemos todas las áreas centrales cubiertas por todos los datos de replicación entre ellos, es rápido. Diría ir con PHP7 y Nginx ya que es más fácil de configurar y mantener y trabajar hacia atrás desde allí si tiene problemas de compatibilidad.

Gracias del usuario por A2a.

Las 4 opciones de producto son de 2 tipos:

Tipo: Servidor web

  1. Apache2
  2. Nginx

Tipo: RunTime

  1. H HVM
  2. PHP 7

Nginx ya ganó la competencia WebServer, ya que este último utiliza un proceso asincrónico mejor que Apache. Aquí hay un mejor descuido: Apache vs Nginx: consideraciones prácticas

Entre PHP 7 y los ejecutables de tiempo de ejecución de HHVM, en este momento HHVM es un poco mejor que PHP 7. Aquí está el informe detallado: PHP 7 definitivo (versión final) y HHVM Benchmark

Por lo tanto, para obtener el mejor rendimiento, se podría utilizar Nginx + HHVM.

php7 y la última versión ya es compatible con hhvm para aquellos que quieran usar php 7 + último en hhvm, puede usarlo ahora y es totalmente compatible con hhvm.

Soporte PHP 7

“Las características del lenguaje de PHP 7.0 son, por supuesto, solo el comienzo. A medida que se desarrolle PHP 7.1 en adelante, seguiremos agregando las nuevas funciones de PHP en HHVM, para seguir teniendo paridad con el lenguaje “.

-Josh Watzman

Mejor actuacion:

  1. SO : Ubuntu / Cent OS.
  2. Servidor web : Servidores Nginx y / o Apache 2 (donde Ngnix actúa como equilibrador de carga de proxy inverso)
  3. PHP: PHP 7 + MemCache + Zend Optimizer O HHVM Ref: http://blog.wpoven.com/2016/04/1

Entre HHVM y PHP7, HHVM es ligeramente más rápido en los valores predeterminados, pero puede ser considerablemente más rápido en modo repositorio dependiendo del código.

Lo que pasa con hhvm es que siempre ha perdido memoria. Se vuelve más grande hasta que falla o hace que su servidor se bloquee, por lo que debe controlar su instancia hhvm y mantenerla a raya, limitar el uso de memoria no es una opción, porque el proceso se bloqueará.

Si tiene varios servidores, puede simplemente equilibrar la carga cuando una instancia necesita reiniciarse, en un solo servidor necesita un respaldo, como un segundo servidor hhvm que escucha en un puerto diferente asegurándose de que las configuraciones no se superpongan, la caché de bytecode podría ser la misma … No estoy seguro de esto … también necesita establecer un `hhvm.server.graceful_shutdown_wait` en unos segundos porque por defecto es 0, lo que significa que interrumpirá los trabajos actuales abruptamente.

El costo de mantener estable hhvm probablemente supera el aumento en el rendimiento, especialmente para configuraciones de servidor único.

More Interesting

Actualmente tengo 2 meses en desarrollo web y me encanta. Sin embargo, también estoy interesado en aprender Java. ¿Es prudente dividir mis horas de aprendizaje entre los dos?

¿Cuánto debo cobrar en INR para configurar un sitio de WordPress usando complementos y temas gratuitos?

Cuando estalla una burbuja tecnológica, ¿cuál es la probabilidad de que alguien mantenga su trabajo en función del campo (desarrollo web, diseño, marketing, etc.)?

SQL: ¿Cómo uso group by y order by together?

¿Es imprudente guardar los componentes HTML / CSS / JavaScript que he usado en sitios que he creado para usarlos más tarde?

Cómo construir un plugin de wordpress para la tabla de clasificación para los mejores autores

¿Cuánto tiempo más serán necesarias las hojas de estilo reset.css?

¿Existe un complemento de WordPress que emule las capacidades de creación de sitios de Wix?

¿Cuáles son las convenciones de codificación comúnmente aceptadas para hojas de estilo en cascada, JavaScript (lenguaje de programación) y HTML?

¿Cuál es el mejor entorno de desarrollo para Rails en una Mac?

¿Cuál es el mejor y más relevante marco MVC para aprender con una comprensión bastante buena de Javascript vainilla?

Nuestro objetivo es construir el frontend y el backend para un negocio de suscripción de producto como servicio. ¿Cuál es la mejor manera de usar las soluciones disponibles?

¿Qué es WordPress? ¿Cómo puedo crear un sitio web de WordPress en una hora?

¿Qué tan difícil es aprender el desarrollo full stack?

Cómo hacer que mi blog sea visible en los resultados de búsqueda de Google