10 votes

Amazon RDS : Que sont les demandes d'E/S ?

J'ai une instance RDS qui me coûte beaucoup d'argent. D'après l'activité de mon compte sur Amazon, je vois que l'instance a reçu environ 800 000 000 de requêtes IO au cours des sept derniers jours.

Pour vous donner une idée, mon application ne reçoit qu'environ 6 000 visites uniques par jour et n'établit pas autant de connexions à la base de données.

Alors, qu'est-ce qu'une demande d'OI exactement, et pourquoi ce nombre serait-il si étrangement élevé ? Je suis prêt à faire tout ce qu'il faut à mon application pour réduire ce coût si nécessaire, mais je ne suis pas sûr de ce qui se passe réellement.

J'apprécierais vos réflexions.

6voto

Pablo Venturino Points 1660

Ah, Amazon Web Services. L'un des plus gros gouffres à fric disponibles. Très bon, mais pas toujours bon marché. En fait, presque jamais bon marché, et toujours difficile d'estimer les dépenses.

Une requête IO est une opération sur le disque. Qu'il s'agisse d'une lecture ou d'une écriture, vous êtes essentiellement facturé en fonction de la quantité de données que vous obtenez de leur système. C'est insensé.

Vous pouvez estimer les demandes d'E/S que vous faites, en regardant iostat.

800,000,000 IOrequests en 7 jours C'est ~=1300 IOPS. Wow. C'est une performance très rapide.

À titre d'exemple, la base de données d'un site Web de taille moyenne peut atteindre 100 Go. et s'attendre à une moyenne de 100 E/S par seconde au cours d'un mois. Cela se traduirait par des coûts de stockage de 10 $ par mois (100 Go x 0,10 $/mois) et environ 26 $ par mois. 0,10 $/mois), et environ 26 $ par mois en coûts de requête (~2,6 millions de secondes/mois x 100 E/S par seconde * 0,10 $ par million d'E/S).

De http://aws.amazon.com/ebs/ environ 90% de la page

Si vous voulez vraiment réduire ce que cela vous coûte, il est peut-être temps d'examiner si RDS est vraiment la meilleure solution pour votre application et le budget de votre projet.

Si vous n'avez que 6 000 visites par jour, un serveur dédié (de préférence deux, l'un pour la base de données, l'autre pour les services Web) vous permettra d'obtenir de meilleurs résultats en termes de coûts et de performances. Il est en fait un peu plus difficile de faire ce choix car vous n'avez pas dit grand-chose de plus sur votre application.

6voto

the-wabbit Points 40039

J'ai une instance RDS qui me coûte beaucoup d'argent.

"Services en nuage" ne signifie pas que ce genre de choses va vous coûter des sous. Fondamentalement, une demande d'E/S est tout ce qui (c'est-à-dire une base de données ou une page d'index) doit être récupéré sur le disque. Si vous avez une grande base de données et des requêtes utilisant des balayages de table complets, ce n'est pas surprenant. Vous pouvez envisager de rechercher les requêtes utilisant des colonnes non indexées pour le filtrage en activant la fonction option pour enregistrer les requêtes "non indexées" dans le journal lent de MySQL et en ajoutant des index pour les colonnes appropriées. Comme vous n'avez pas la possibilité d'éditer directement le fichier de configuration, utilisez la commande Configuration du groupe de paramètres RDS pour fixer log-queries-not-using-indexes et interrogez le mysql.slow_log pour les entrées de journal.

En outre, envisagez d'exécuter le Amorce de tuning MySQL script de votre instance AWS par rapport à l'instance de la base de données pour une analyse générale des performances afin de voir si une instance plus grande aiderait les choses en raison d'une plus grande quantité de mémoire disponible pour la mise en cache, allégeant la charge sur le disque. Le script évalue un certain nombre de paramètres de configuration et de compteurs de performance pour donner des informations sur les éventuels goulets d'étranglement et fournir quelques recommandations génériques.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X