Question 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, l'instance a reçu environ 800 000 000 demandes d'E / S au cours des 7 derniers jours.

Pour vous donner un peu de recul, mon application ne reçoit qu'environ 6 000 visites uniques par jour et ne crée pas beaucoup de connexions à une base de données.

En quoi consiste exactement une demande d'E / S et pourquoi ce nombre serait-il si anormal? Je suis prêt à faire tout ce qui est nécessaire à 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.


8
2018-05-08 06:56


origine


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


Réponses:


Ah, les services Web Amazon. L'un des plus gros fonds disponibles. Très bien, mais pas toujours pas cher. En réalité, presque jamais bon marché et toujours difficile d’estimer les dépenses.

Une demande d'E / S est une opération de disque. Que ce soit une lecture ou une écriture, vous êtes essentiellement accusé de la quantité de données que vous récupérez de leur système. C'est fou.

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

800 000 000 IOquests en 7 jours .. C'est ~ = 1300 IOPS. Sensationnel. C'est une performance mauvaise.

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

De http://aws.amazon.com/ebs/ environ 90% du chemin en bas de la page

Si vous voulez vraiment réduire ce que cela vous coûte, il est peut-être temps de vérifier si RDS convient vraiment à votre application et à votre budget de projet.

Si vous n'obtenez que 6 000 visites par jour, vous pouvez améliorer vos coûts et vos performances avec un serveur dédié (de préférence deux d'entre eux, un pour la base de données et un pour les services Web). Il est en fait un peu plus difficile de passer cet appel car vous n’en avez pas beaucoup parlé de votre candidature.


6
2018-05-08 07:11



Lorsque j'ai expérimenté pour la première fois le service SimpleDB d'AWS, qui ressemble à MongoDB, j'ai envoyé une facture de 50 USD en après-midi. C'est pratique, mais presque jamais bon marché. - Tom O'Connor
Je suppose que EBS ne peut plus expliquer pourquoi ce coût figure sur ma facture: "Les E / S sont comprises dans le prix des volumes, vous ne payez donc que pour chaque Go de stockage que vous avez fourni." (du page de tarification)? - hayd
Soupir, il s'avère qu'il est toujours disponible dans la génération précédente! - hayd


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

"Services en nuage" ne signifie pas que cela va vous coûter quelques sous. Fondamentalement, une demande d’E / S est tout ce qui doit être extrait du disque (c’est-à-dire une base de données ou une page d’index). Si vous avez une base de données volumineuse et que les requêtes utilisent des analyses de table complètes, cela n’a rien de surprenant. Vous pouvez envisager de rechercher des requêtes utilisant des colonnes non indexées pour le filtrage en activant la possibilité de journaliser les requêtes "unindexed" dans le journal lent de 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 commande Configuration du groupe de paramètres RDS mettre en place log-queries-not-using-indexes et interroger le mysql.slow_log table pour les entrées de journal.

En outre, envisagez de lancer le MySQL Tuning Primer Script de votre instance AWS à l’instance de base de données pour une analyse de performance générale afin de déterminer si une instance plus grande aiderait à résoudre le problème en raison d’une plus grande quantité de mémoire disponible pour la mise en cache, réduisant ainsi la charge sur le disque. Le script évalue un certain nombre de paramètres de configuration et de compteurs de performance afin de fournir des informations sur les goulots d'étranglement possibles et des recommandations génériques.


6
2018-05-08 07:16



Il est étonnant de voir avec quelle facilité nous, humains, pouvons forcer accidentellement les ordinateurs à faire des quantités de travail absurde. Vous devez toujours revenir en arrière et mesurer pour vous assurer de ne pas obliger la machine par inadvertance à faire quelque chose de stupéfiant. (J’ai une fois amélioré les performances d’un système réel déployé de 40% en moins de dix minutes (sans compter le temps de configuration d’un build profilé) en ajoutant un & à son code. Clairement, personne ne l’avait jamais profilée.) - David Schwartz