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


9

J'ai une instance RDS qui me coûte beaucoup d'argent. D'après l'activité de mon compte sur Amazon, je constate que l'instance a reçu environ 800 000 000 de demandes d'E / S au cours des 7 derniers jours.

Pour vous donner un peu de perspective, mon application ne reçoit qu'environ 6 000 visites uniques par jour et ne fait pas autant de connexions à la base de données.

Alors, quelle est exactement une demande d'E / S, et pourquoi ce nombre serait-il si surnaturel? Je suis prêt à faire tout ce qu'il faut pour 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 pensées.


Avez-vous trouvé une solution dans votre cas?
Cliquez sur Upvote

Réponses:


6

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

Une demande d'E / S est une opération sur disque. Qu'il s'agisse d'une lecture ou d'une écriture, vous êtes essentiellement chargé de la quantité de données que vous retirez de leur système. C'est fou.

Vous pouvez estimer les demandes d'E / S que vous effectuez en consultant iostat.

800 000 000 IOrequests en 7 jours .. C'est ~ = 1300 IOPS. Sensationnel. Voilà des performances incroyablement rapides.

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

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

Si vous voulez vraiment réduire ce que cela vous coûte, il serait peut-être temps de voir si RDS est vraiment le mieux adapté à votre budget d'application et de projet.

Si vous n'avez que 6 000 visites par jour, vous pourriez améliorer les coûts et les performances avec un serveur dédié (de préférence 2 d'entre eux, un pour la base de données, un pour les services Web). Il est en fait un peu plus difficile de passer cet appel car vous n'en avez pas trop dit sur votre application.


3
Lorsque j'ai expérimenté pour la première fois avec le service SimpleDB d'AWS, qui ressemble à MongoDB, j'ai accumulé une facture de 50 $ en un après-midi. C'est pratique, mais presque jamais bon marché.
Tom O'Connor

Je suppose qu'EBS ne peut plus expliquer pourquoi je vois ce coût dans ma facture, "les E / S sont incluses dans le prix des volumes, donc vous ne payez que pour chaque Go de stockage que vous fournissez." (à partir de la page des prix )?
hayd

Soupir, il s'avère qu'il est toujours disponible dans la génération précédente !
hayd

6

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

Les «services cloud» ne signifient pas que des choses vont vous coûter des sous. Fondamentalement, une demande d'E / S est tout (c'est-à-dire une base de données ou une page d'index) qui doit être récupéré à partir du disque. Si vous avez une grande base de données et des requêtes utilisant des analyses de table complètes, cela n'est pas surprenant. Vous pouvez envisager de rechercher des requêtes à l'aide de colonnes non indexées pour le filtrage en activant l' option de journalisation des requêtes "non indexées" dans le journal lent MySQL et en ajoutant des index pour les colonnes appropriées. Comme vous n'avez pas la possibilité de modifier directement le fichier de configuration, utilisez la configuration du groupe de paramètres RDS pour définir log-queries-not-using-indexeset interroger la mysql.slow_logtable pour les entrées de journal.

En outre, envisagez d'exécuter le script d'amorçage de l'optimisation MySQL à partir de votre instance AWS sur l'instance de base de données pour une analyse générale des performances pour voir si une instance plus importante aiderait les choses en raison d'une plus grande quantité de mémoire disponible pour la mise en cache, allégeant ainsi la charge sur le disque. Le script évalue un certain nombre de paramètres de configuration et de compteurs de performances pour fournir des informations sur les goulots d'étranglement possibles et fournir des recommandations génériques.


5
Il est étonnant de voir avec quelle facilité nous, les humains, pouvons accidentellement faire faire aux ordinateurs des quantités de travail absurdement énormes. Vous devez toujours revenir en arrière et mesurer pour vous assurer que vous n'avez pas forcé par inadvertance la machine à faire quelque chose d'incroyablement stupide. (J'ai déjà amélioré les performances d'un système déployé dans le monde réel de 40% en moins de dix minutes (sans compter le temps nécessaire pour configurer une génération profilée) en en ajoutant une &à son code. De toute évidence, personne ne l'avait jamais profilé.)
David Schwartz
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.