2012-08-31 32 views
6

Me interesa saber cuál es la diferencia entre EC2 y Linode en función de mis conclusiones. Me doy cuenta de que hay un millón de cosas que pueden salir mal. Me preguntaba por dónde empezar.Diferencia de rendimiento entre Amazon EC2 y Linode

He estado temporización peticiones a la página de destino del blog (vía Apache Benchmark). Tiene alrededor de 22 consultas sql y una buena cantidad de html. Configuro exactamente el mismo sitio en dos servidores.

Web1 - Alojado en Linode (512 Tamaño VPS).

Web2 - Alojado en Amazon (micro VPS).

Luego probé haciendo 100 conexiones simultáneas a ambos. Ejecuté la prueba primero para calentar la base de datos y luego realmente la ejecuté.

Web1 - 33 solicitudes por segundo.

Web2 - 5 Solicitudes por segundo.

Luego instalado caché de páginas. Aquí es donde almacena el retorno html completo en un archivo. Por lo tanto, en lugar de pasar por el controlador PHP y hacer conexiones a la base de datos, simplemente devuelve el archivo html estático.

Web1 - 32 solicitudes por segundo.

Web2 - 88 solicitudes por segundo.

Usted se dará cuenta de almacenamiento en caché de archivos en realidad no hacen mucho en Web1. Parece que la base de datos/PHP vuelve tan rápido y solo abre un archivo y lo devuelve. Notarás que en Web2 se volvió loco rápidamente en comparación con la primera solicitud.

He tomado estas medidas varias veces durante el día. No es un problema de una sola vez.


Esto es lo que sé.

  • Ambos sistemas son iguales. Como los configuré a ambos con el mismo despliegue scripts.
  • Web2 (Amazon) probablemente se esté ejecutando en una SAN (el sistema de archivos).
  • Web1 (Linode) probablemente se esté ejecutando desde un disco duro local (el sistema de archivos).
  • No estoy seguro de qué CPU hay detrás. Supongo que son CPU diferentes. No puedo imaginar que haya mucha diferencia en la CPU.

Estoy muy interesado en saber lo que hace que Web2 tan lento cuando no hay almacenamiento en caché y bastante rápido cuando hay almacenamiento en caché y Web1 es la misma en ambos sentidos.

¿Cuáles son sus ideas? CPU, IO?

¿Qué harías para rastrear el cuello de botella?

No veo ninguna carga loca (con "w"). No es 100% lo que es valioso en "iostat" (en cuanto a lo que debería estar mirando).


Thanks.

+0

Corrección. Hacer las pruebas más tarde en el día da mejores resultados con Web1 cuando el almacenamiento en caché está activado. Me estoy acercando a 130 Solicitudes por segundo ahora. Entonces, la pregunta más importante es qué es lo que está reteniendo a Web2 cuando el almacenamiento en caché no está activado. 5 Pide un segundo es perro lento. – spicer

Respuesta

0

Un posible factor es que los volúmenes de EC2 EBS tienden a ser bastante lentos en comparación con los discos duros estándar (y aún más en comparación con los SSD).

See this SO Q&A.And this criticism (that is linked to from the SO link).

Esto no es probablemente la razón completa de la lentitud, pero es al menos una razón parcial si la opción Linode está utilizando discos duros reales.

4

Así que lo descubrí.

Lame. Pero si tienes una microinstancia en Amazon limitarán tu CPU. Entonces, cuando intentaba conectarme varias veces con conexiones concurrentes, estaban limitando mi CPU.

+0

Esta es la razón principal de las microinstancias. La CPU está acelerada. De todos modos, como dijo Peter, los volúmenes de Amazon EBS son realmente lentos en comparación con otros en la nube. – adosaiguas