instalar apache webserver lamp web-farm

apache - instalar - lamp server windows



El entorno LAMP multiservidor ideal (3)

Hay mucha información sobre cómo configurar las pilas LAMP en una sola caja, o tal vez mover MySQL a su propia caja, pero crecer más allá de eso no parece estar muy bien documentado.

Mi entorno web actual está teniendo problemas de capacidad, por lo que estoy buscando las mejores prácticas con respecto al ajuste de la configuración , la determinación de los cuellos de botella , la seguridad , etc.

Actualmente alojo alrededor de 400 sitios, con una necesidad justa de redundancia y seguridad, y por eso he crecido más allá de la solución de caja única, pero no estoy al nivel de un ISP completo o una empresa dedicada de alojamiento web.

¿Alguien puede orientarme en la dirección de una buena experiencia en la creación de una gran granja web apache con vistas a la seguridad y la futura expansión?

Mi entorno web consta de 2 servidores MySQL redundantes, 2 servidores redundantes de contenido web, 2 servidores apache de equilibrio de carga que montan el contenido a través de nfs y comparten los directorios de configuración y sesiones de Apache, y un único servidor "desarrollador" que también monta el contenido web a través de nfs y contiene todas las cuentas de desarrollador.

Estoy bastante contento con mucho de esta configuración, pero parece estar asfixiándose en la carga prematuramente.

¡¡Gracias!!

--ACTUALIZAR--

Resulta que el "ahogo en la carga" está relacionado con mod_log_sql , que utilizo para enviar mis registros de apache a una base de datos mysql. Al reconfigurar los servidores web para escribir sus sentencias SQL en un archivo de disco, y luego crear un proceso separado para enviarlos a la base de datos, permite a los servidores web liberar sus hilos mucho más rápido y manejar una carga mucho mayor.


Debe ser capaz de identificar los cuellos de botella y las mejoras de prueba.

Para identificar los cuellos de botella, debe usar las herramientas de informes de su sistema. Algunos ejemplos:

  • MySQL tiene un registro lento de consultas.
  • Linux proporciona estadísticas como promedio de carga, iostat, vmstat, netstat, etc.
  • Apache tiene el registro de acceso y la página de estado del servidor.
  • Los lenguajes de programación tienen perfiladores, como Pear Benchmark .

Use estas herramientas para identificar a los delincuentes más lentos / más grandes y concéntrese en ellos. Pruebe una mejora y mida para ver si realmente mejora el rendimiento.

Esto se convierte en un ciclo interminable por dos razones: siempre hay algo en un sistema complejo que puede ser más rápido y, a medida que su sistema crece, diferentes funciones comenzarán a desacelerarse.

De acuerdo con la descripción de su sistema, mi primera corazonada sería disk io y network io en los servidores NFS, luego miraría los tiempos de consulta de MySQL. También verificaría el rendimiento de las sesiones compartidas.


La manera de hacerlo de la escuela sería identificar los cuellos de botella con datos empíricos reales.

¿Es la base de datos , apache, red, cpu, memory, io? ¿Necesita más RAM, sharding ( + ), es el DiskIO, la carga de red NFS, la CPU para hacer escaneos de tabla completa?

Cuando descubra dónde está el problema, puede encontrarse con el problema de que no es suficiente para escalar la infraestructura, debido a la forma en que funciona el código, y termina con la necesidad de simplemente crear más instancias de su configuración actual o hacer el código diferente.


También recomendaría como primer paso en términos de escalabilidad, descargar su contenido a una CDN como Edgecast. Use sus dos servidores de contenido actuales como servidores web adicionales.