Amazon RDS: ¿Qué son las solicitudes de E / S?

9

Tengo una instancia de RDS que me está costando mucho dinero. De la actividad de mi cuenta en Amazon veo que la instancia ha tenido alrededor de 800,000,000 de solicitudes de IO en los últimos 7 días.

Para darle una pequeña perspectiva, mi aplicación solo recibe alrededor de 6,000 visitas únicas al día y no hace tantas conexiones a la base de datos.

Entonces, ¿qué es exactamente una solicitud de IO y por qué ese número sería tan sobrenatural? Estoy dispuesto a hacer lo que sea necesario para que mi aplicación reduzca ese costo si es necesario, pero no estoy seguro de lo que realmente está sucediendo.

Agradecería tus pensamientos.

Abe
fuente
¿Encontró una solución en su caso?
Haga clic en Upvote

Respuestas:

6

Ah, Amazon Web Services. Uno de los mayores enlaces de dinero disponibles. Muy bien, pero no siempre es barato. En realidad, casi nunca es barato, y siempre es difícil calcular los gastos.

Una solicitud de E / S es una operación de disco. Ya sea una lectura o una escritura, básicamente se le está cobrando la cantidad de datos que obtiene de su sistema. Es una locura.

Puede estimar las solicitudes de IO que está haciendo, mirando iostat.

800,000,000 IOrequests en 7 días. Eso es ~ = 1300 IOPS. Guau. Esa es una actuación perversamente rápida.

Como ejemplo, una base de datos de un sitio web de tamaño medio podría tener un tamaño de 100 GB y esperar un promedio de 100 E / S por segundo en el transcurso de un mes. Esto se traduciría en $ 10 por mes en costos de almacenamiento (100 GB x $ 0.10 / mes), y aproximadamente $ 26 por mes en costos de solicitud (~ 2.6 millones de segundos / mes x 100 E / S por segundo * $ 0.10 por millón de E / S).

Desde http://aws.amazon.com/ebs/ aproximadamente el 90% de la página

Si realmente desea reducir lo que esto le está costando, tal vez sea hora de ver si RDS es realmente la mejor opción para su aplicación y presupuesto de proyecto.

Si solo tiene 6k visitas al día, podría mejorar su costo y rendimiento con un servidor dedicado (preferiblemente 2 de ellos, uno para DB, uno para servicios web). En realidad, es un poco más difícil hacer esa llamada, ya que no ha dicho demasiado sobre su aplicación.

Tom O'Connor
fuente
3
Cuando experimenté por primera vez con el servicio SimpleDB de AWS, que es algo así como MongoDB, acumulé una factura de $ 50 por una tarde. Es conveniente, pero casi nunca es barato.
Tom O'Connor
Supongo que EBS ya no puede ser la razón por la que veo este costo en mi factura, "la E / S está incluida en el precio de los volúmenes, por lo que paga solo por cada GB de almacenamiento que aprovisione". (desde la página de precios )?
hayd
¡Suspiro, resulta que todavía está disponible en la generación anterior !
hayd
6

Tengo una instancia de RDS que me está costando mucho dinero.

Los "servicios en la nube" no significan que las cosas te va a costar centavos. Básicamente, una solicitud de E / S es cualquier cosa (es decir, una base de datos o una página de índice) que se necesitaba obtener del disco. Si tiene una base de datos grande y consultas utilizando escaneos completos de tablas, esto no es sorprendente. Puede considerar buscar consultas utilizando columnas no indexadas para el filtrado al habilitar la opción de registrar las consultas "no indexadas" en el registro lento de MySQL y agregar índices para las columnas apropiadas. Como no tiene la opción de editar el archivo de configuración directamente, use la configuración del grupo de parámetros RDS para establecer log-queries-not-using-indexesy consultar en la mysql.slow_logtabla las entradas de registro.

Además, considere ejecutar el script de iniciación de ajuste de MySQL desde su instancia de AWS contra la instancia de la base de datos para un análisis de rendimiento general para ver si una instancia más grande ayudaría debido a una mayor cantidad de memoria disponible para el almacenamiento en caché, aliviando la carga en el disco. El script evalúa una serie de parámetros de configuración y contadores de rendimiento para proporcionar información sobre posibles cuellos de botella y proporcionar algunas recomendaciones genéricas.

el wabbit
fuente
55
Es sorprendente la facilidad con la que los humanos podemos hacer que las computadoras realicen trabajos absurdamente enormes. Siempre tienes que volver atrás y medir para asegurarte de no obligar inadvertidamente a la máquina a hacer algo asombrosamente estúpido. (Una vez mejoré el rendimiento de un sistema implementado en el mundo real en un 40% en menos de diez minutos (sin contar el tiempo para configurar una compilación con perfil) agregando uno &a su código. Claramente, nadie lo había perfilado nunca)
David Schwartz