¿Cuántas solicitudes debería poder manejar mi servidor web?

39

No entraré en detalles sobre las especificaciones ya que sé que no hay una respuesta real para esto. Pero he estado haciendo pruebas de carga hoy con el abcomando en apache.

Y llegó a la cantidad de 70 solicitudes por segundo (1000 solicitudes con 100 usuarios concurrentes), en una página que se está cargando desde 4 tablas de bases de datos diferentes, y haciendo alguna manipulación con los datos. Entonces es una página bastante pesada.

El servidor no se usa para nada más por el momento y la carga que tengo es solo yo, ya que está en desarrollo. Pero la aplicación será utilizada diariamente por muchos usuarios.

¿Pero es esto suficiente? O incluso debería preocuparme (siempre y cuando haya terminado X solicita un segundo)

Estoy pensando que no debería preocuparme, pero me gustaría algunos consejos sobre esto.

Ólafur Waage
fuente

Respuestas:

44

70 solicitudes por segundo se calculan a una tasa por hora de 252,000 páginas por hora.

Si supone que la sesión de navegación promedio para su sitio tiene 10 páginas de profundidad, puede admitir 25,000 únicos / hora.

Probablemente debería verificar estos números con su recuento de visitantes esperado, que debería estar disponible de la gente del lado comercial.

Muchos de los sitios en los que trabajo ven aproximadamente el 50% de su tráfico diario en un período pico de aproximadamente 3 horas cada día. Si este es el caso con su sitio (depende del tipo de contenido que proporcione y de la audiencia), entonces debería poder soportar un recuento diario único de visitas de alrededor de 150,000.

Estos son números bastante buenos; Creo que estarás bien. Es aconsejable analizar el almacenamiento en caché del código de operación y el ajuste de la base de datos ahora, pero recuerde: la optimización prematura es la raíz de todo mal. Supervise el sitio, busque puntos de acceso y espere a que crezca el tráfico antes de realizar un costoso esfuerzo de optimización para un problema que puede no tener.

Tim Howland
fuente
Muy buena respuesta, exactamente lo que estaba buscando. No he hecho ninguna optimización y quería obtener números de referencia para ver dónde estaba sentado en este momento.
Ólafur Waage
"Si supone que la sesión de navegación promedio para su sitio tiene 10 páginas de profundidad, entonces puede admitir 25,000 únicos / hora" ... bajo el supuesto de que cada único envía una solicitud cada segundo durante la sesión. Si un visitante necesita pensar antes del siguiente clic / solicitud, por ejemplo 5 segundos, podrá admitir más visitantes en sesiones paralelas.
Jochem Schulenklopper
Estoy totalmente de acuerdo con la "optimización prematura" desde la perspectiva del código. Pero, elegir un diseño defectuoso en su conjunto es en realidad la raíz de todo mal. Nada puede superar un diseño defectuoso, excepto una reescritura.
Jeff Fischer
5

He usado 2 herramientas para ver el rendimiento de mis servidores apache en el pasado.

Uno es munin , que representa todo tipo de cosas, incluido el número de instancias de apache, el número de conexiones, la memoria disponible, el uso del procesador, etc., y me ayuda a determinar cuándo me estoy acercando a una zona peligrosa y por qué.

La segunda es simplemente la página de estado del servidor apache ( http: // your_server / server-status? Refresh = 10 ) que me permite ver el estado de cada conexión, junto con cuántas conexiones gratuitas hay disponibles en un momento dado.

Brent
fuente
1

Te sugiero que te preocupes solo si crees que tu aplicación estará muy ocupada cuando toque el suelo. ¿Es probable que la página en cuestión se vea tan afectada? ¿Más fuerte? ¿Menos? Si no tiene idea, sospecharía que es poco probable que sea un problema antes. Si es su página más lenta, sabrá dónde buscar si tiene que optimizar el sistema más adelante.

También hay muchas cosas que puede hacer para ajustar la mayoría de los servidores web y los motores de bases de datos para obtener más rendimiento.

acrosman
fuente
Me gustaría estar preparado para una pequeña cantidad de solicitudes, por ejemplo, una página muy rápida puede manejar alrededor de 110 solicitudes por segundo. Mientras que el servidor puede manejar 2900 rps en una página vacía.
Ólafur Waage
0

Usted declara en un comentario que su servidor puede manejar 2,900 solicitudes por segundo en una página vacía. Eso indica con bastante fuerza que no es el servidor web en sí, es el procesamiento.

Si está utilizando PHP, considere un cacher de código de operación como APC . Si la base de datos es un cuello de botella, memcached también lo ayudará.

ceejayoz
fuente
No me preocupan especialmente los números si 70 rps son suficientes.
Ólafur Waage
0

Una vez que ponga su sitio en vivo, también podría mirar mod_top 1, que le dará una vista en tiempo real de la carga actual en Apache. No lo he instalado yo mismo, pero ciertamente parece tener más información y un mejor desglose de la carga que el estado estándar del servidor Apache.


fuente