3 votos

Apache Benchmark es lento de la red pública, las magnitudes más rápido a nivel local. ¿Cuáles son algunas de las cosas que tengo que hacer para acelerar este proceso?

Estoy probando mi Linode Ubuntu 14 de servidor de 64 bits, la mayoría de los servicios básicos de un servidor a disposición de ellos. Yo estoy usando el Apache Benchmark para probar el servidor, así como un multiproceso guión que escribió en Python, pero más sobre esto más adelante. El uso de AB me di cuenta que conseguir alrededor de 7k de solicitudes por segundo cuando se ejecuta de forma local desde el propio servidor, pero sólo alrededor de 15 años cuando se ejecuta desde otra red/internet. El tiempo de respuesta también es alrededor de 150 ms de 1000 conexiones simultáneas, a nivel local. De forma remota el tiempo de respuesta es de alrededor de 1.5-2.5 segundos para 100 conexiones simultáneas. La red estoy ejecutando el control remoto pruebas de tiene un montón de ancho de banda y el equipo al que me estoy corriendo de tiene un montón de memoria ram y la velocidad del procesador; es una manera rápida la red de la empresa. Incluso he intentado 2 otras redes de todo los estados UNIDOS, en otros dos ordenadores y las velocidades son todos acerca de la misma.

Cuando se ejecuta mi multi-threaded script me doy cuenta de que hipo tan pronto como me trate más que de 100 solicitudes simultáneas, esto es desde redes externas. No he probado mi script de forma local en el servidor, como yo necesita actualizar mi Python en el servidor 3+ o cambio mi script ser de 2,7 compatible. He probado localmente y obtener 150 ms tiempo de respuesta cuando se ejecuta la secuencia de comandos con hasta 1000 multiproceso conexiones, es simplemente el uso de urllib2.

Estoy probando esta en contra de nginx directamente (un archivo estático), un pywsgi aplicación que está detrás de nginx, así como directamente a la pywsgi. El pywsgi aplicación tiene una ruta sencilla que responde con una respuesta básica de lo que debe ser rápido. No es de extrañar que nginx->pywsgi proporciona los mejores resultados, probablemente debido a la forma en que los búferes de las solicitudes. Hay algo que es específico con Linode de la red que está causando este problema? Los órdenes de magnitud de diferencia entre interno y externo de las pruebas hace que me pregunte lo que podría ser la causa. La única otra cosa en el camino estaría iptables firewall, simplemente filtrar en http/s y ssh.

dmesg no tiene la información relativa a mis pruebas.

1voto

Mark Stosberg Puntos 548

Suena como que hay un cuello de botella en algún lugar entre el escritorio de la máquina y su Linode de la máquina. Algunas sugerencias:

  1. Comparar los tiempos de ping desde tu escritorio a tu Linode y otros lugares en el internet, como google.com y yahoo.com.
  2. Uso traceroute your-linode-ip de su escritorio para ver si eso le ayuda a encontrar el cuello de la botella.
  3. Pruebe su Linode el uso de http://www.webpagetest.org/ la selección tanto de la Costa Este y Costa Oeste de los lugares y ver cómo varían.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: