Je suis un client Amazon RDS et je constate quotidiennement des pics de latence d'écriture Amazon RDS, correspondant à peu près à la fenêtre de sauvegarde. Je verrai également des pointes à la fin d'un instantané (exemple: l'exécution d'un instantané prend environ 1 heure, et dans les 5 dernières minutes, j'écris des pointes de latence). J'exécute un déploiement m1.large multi-AZ.
Y a-t-il quelqu'un sur Stack qui peut expliquer comment fonctionne la sauvegarde Amazon RDS en fait? J'ai lu les documents d'Amazon RDS, et pour autant que je sache, Amazon RDS ne se comporte pas conformément aux spécifications. Plus précisément, ces opérations de sauvegarde/snapshot devraient frapper ma réplique, et donc ne pas causer de temps d'arrêt/de performances, du moins c'est ce que je pensais.
Je peux distiller mon problème en six questions:
Question bonus: où et comment hébergez-vous votre base de données mysql?
Je peux dire que je suis généralement satisfait de RDS, à l'exception de ces problèmes de latence d'écriture quotidiens. J'adore la surveillance de base de données intégrée et c'était assez simple à configurer et à démarrer.
Merci!
Nous exécutons également plusieurs instances RDS, en plus de MySQL sur certaines machines que nous gérons nous-mêmes. Je ne peux pas commenter spécifiquement, car je ne suis pas un ingénieur Amazon, mais plusieurs choses que j'ai apprises pourraient expliquer ce que vous voyez:
Bien qu'Amazon ne partage pas à 100% les détails du backend, nous soupçonnons fortement qu'ils utilisent leur système EBS pour sauvegarder les bases de données RDS.
Cet article explique les limitations d'EBS et la fonctionnalité de capture instantanée http://blog.rightscale.com/2008/08/20/Amazon-ebs-explained/ Encore une fois, même si ce n'est pas explicite, il serait logique pour Amazon utilisera cette infrastructure pour fournir des services RDS.
En règle générale, une sauvegarde MySQL, contrairement à un instantané, implique l'utilisation d'un outil comme mysqldump pour créer un fichier d'instructions SQL qui reproduira ensuite la base de données. La base de données n'a pas besoin d'être gelée pour ce faire. Avec un backend EBS, la meilleure pratique consiste à geler la base de données (suspendre toutes les transactions) pendant que vous effectuez un snapshot pour éviter la corruption des données.
Les pics que vous voyez aux extrémités de la fenêtre de sauvegarde. Si la réplication est suspendue par Amazon pendant l'instantané de votre réplique, le réplica devra alors "rattraper" les transactions une fois l'instantané terminé. Cela provoquerait un pic de latence.
La réplication sur un déploiement multi-AZ est intrinsèquement plus lente qu'un déploiement AZ unique. Le prix à payer pour une meilleure redondance.
Amazon a révélé l'architecture de base qu'ils utilisent dans les déploiements Multi AZ. Cela peut aider les gens à prendre des décisions
https://aws.Amazon.com/blogs/database/Amazon-rds-under-the-hood-multi-az/