web-dev-qa-db-fra.com

Comprendre le comportement métrique BinlogDiskUsage

Nous utilisons AWS-RDS. Ce qui suit est la capture d'écran de la manière dont l'utilisation du disque de journal binaire varie au cours des 6 dernières semaines.

enter image description here

La période de conservation du journal est de 3 jours. Les tables sont optimisées et archivées une fois par semaine. Nous nous attendions à ce que la BinlogDiskUnage soit presque constante (en supposant une purge périodique des bûches de AWS) avec des pointes pendant les tâches d'archives.

Quelqu'un peut-il expliquer cette nature ondulée du graphique?

2
Subrata Das

(Winded longuement, mais incomplet, réponse)

Le graphique se déplace plutôt en douceur. Cela me perplexe. Avec vos derniers chiffres, je peux expliquer certains de ce qui se passe.

Les données sont écrites dans le binlog jusqu'à ce qu'elle dépasse max_binlog_size (128m, dans votre cas). À ce moment-là, un nouveau fichier Binlog est créé.

Esclave (s) Tirez les données des binlogs continuellement et Habituellement Continuez. Il n'y a cependant aucun rétroaction à laisser le maître savoir quand tout Les esclaves sont terminés avec un fichier binlog. Ainsi, au lieu de cela, il y a un autre mécanisme pour supprimer des binlogs anciens.

Avec expire_logs_days (3 Dans votre cas), les fichiers binlog plus âgés que de nombreux jours seront supprimés.

Normalement, votre 2GB (1447 * 1396626) occuperait environ 16 fichiers binlog (que/134217728). Et le graphique montrerait des gouttes distinctes de 128 Mo de temps en temps.

La seule chose à laquelle je puisse penser pour mener à 1447 binlogs au lieu de 16 est parasite PURGE commandes. S'il vous plaît courez-les:

 SHOW GLOBAL STATUS LIKE '%purge%';
 SHOW GLOBAL STATUS LIKE 'Uptime';

Le quotient dira combien de purges par seconde. Normalement, cela sera proche de zéro. Mais votre système semble avoir plusieurs par heure. Donc, j'ai converti le graphique mystérieux en "pourquoi est PURGE étant effectué si souvent."

(Voir - http://mysql.rjweb.org/doc.php/mysql_analysis#tuning Si vous souhaitez une analyse plus profonde de STATUS et VARIABLES.)

Plus

1447 binlogs avec purge_logs_days_seconds = 500 (5 minutes). Cela dit qu'il y a généralement 1 ou 2 binlogs étant purgé à chaque fois. Le graphique montre A hebdomadaire motif. Une partie de la semaine est assez occupée - en ajoutant beaucoup aux binlogs tout en purgeant des fichiers de 3 jours qui en ont beaucoup moins. Cela rend le graphique montez. Idem pour le bas. Flat dit que vous ajoutez au même tarif que vous supprimez.

Je devinerais qu'il y avait une accalmie dans la circulation ou des vacances nationales, au cours de la dernière semaine de mai?

Il y a toujours des contradictions dans les petites données que vous avez fournies. 1447 et purge après 3 jours disent intervalle de 3 minutes, pas 12/heure. Ou 5 jours, pas 3. En outre, la taille maximale de Binlog de 70 Mo (sur 128 Mo maximum) impliquerait qu'un cycle de purge ne purge jamais plus d'un fichier.

Le système a un rythme; Rien ne semble terriblement faux.

3
Rick James