2009-03-06 12 views
7

¿Cómo se encuentra Apache con respecto a la manipulación the c10k problem en condiciones normales? Diga al ejecutar secuencias de comandos muy pequeñas con poca información, o necesito escalar si uso Apache?Apache y la c10k

En segundo plano, el trabajo pesado lo realizan unos pocos servidores que ejecutan un software especializado que procesa las solicitudes, pero me gustaría utilizar Apache como interfaz. ¿Es este un plan viable?

+0

Gracias por el enlace. Desde el teléfono no pude hacerlo –

Respuesta

2

Supongo que probablemente haya visto this data, pero si no, podría darle una idea.

+1

Buena información, y me gusta mucho (lo he usado un par de veces en los últimos 8 años). Sin embargo, es importante tener en cuenta que la tabla de información que lista tiene más de diez años. –

+1

Esa página dice "última actualización en 1998" ... ¿alguien ha hecho banchmarks similares desde entonces? –

8

Considero que Apache es más un servidor de origen, ejecutando algo como mod_php o mod_perl para generar el contenido y ser inteligente acerca del enrutamiento al sistema apropiado.

Si obtiene miles de visitas concurrentes al frente de su sitio, con una combinación de tipos de datos (estáticos y dinámicos) que se devuelven, puede ser útil poner un sistema más optimizado frente a él, aunque .

El problema clásico posterior a la optimización con Apache no es generar el contenido dinámico (o al menos, que se puede optimizar para principios del proceso), sino simplemente esperar a que un cliente lento pueda recibir los bytes que están siendo enviados. Por lo tanto, puede ser una gran ventaja colocar un proxy inverso, en forma de Squid o Nginx, frente a los servidores para controlar la 'alimentación con cuchara' de los clientes lentos de la red, al tiempo que permite que la producción de contenido se realice a pleno velocidad, y a velocidades de red locales - 100Mb/seg o incluso velocidades gigabit - si incluso tiene que atravesar una red.

+0

enfoque muy interesante! ¿Sabes dónde podría ir para encontrar más consejos prácticos como este? –

1

Chicos, imagina que estás ejecutando un servidor web con conexiones 10K (simultáneas). ¿Como puede ser?

  • usted tiene muchas conexiones por segundo contenido dinámico

    • ¿Estas seguro que su CPU puede manejar que muchas sesiones de PHP, por ejemplo? Supongo que no, entonces, ¿por qué estás pensando en el problema C10K? : D

    • contenido estático - pequeños archivos

      y todavía Soo muchas conexiones? En un solo servidor? Probablemente también tenga problemas con la red/rendimiento o sea el futuro competidor de Google. Utilice lighttpd que soluciona el problema C10K y es estable: luz de vuelo. Usar Apache para solo archivos estáticos para sitios grandes es obvio.

  • Sus clientes están descargando archivos de gran tamaño por un tiempo grande - contenido estático

    • ISO imágenes, archivos, etc.

      Si lo está haciendo a través del servidor web - FTP puede ser más apropiado.

    • Transmisión de vídeo

      uso lighttpd o software especializado. Y aún ... ¿Qué hay de otros recursos?

estoy usando Linux Virtual Server como equilibrador de carga delante de los servidores Apache (con parches específicos para LVS-NAT) y estoy feliz :) Esta cadena es una respuesta que desea escuchar .

+1

es posible que desee atenuar un poco el tono del idioma, que tiende a atraer banderas, etc. Y una respuesta eliminada automáticamente no ayuda al OP ni le hace justicia a su tiempo al responderla. –

+0

c10k se convierte en un problema cuando los script kiddies usan slowloris.pl ... – jpic

+0

usan valores de tiempo de espera de tcp y keepalive bajo y no tendrá este problema. de todos modos, tendrás el mismo problema en otros servidores, antes de que los paquetes lo alcancen :) – GioMac