Augmenter la taille du cache des tables ouvertes

L'outil de recommandation Cloud SQL pour nombre élevé de tables ouvertes vous aide à détecter les instances dont le nombre de tables ouvertes simultanément est égal à la valeur de table_open_cache. Il vous fournit ensuite des recommandations sur l'optimisation de ces instances pour améliorer les performances.

Cette page décrit le fonctionnement de l'outil de recommandation pour nombre de tables ouvertes et son utilisation.

Fonctionnement

MySQL est multithread. Les clients peuvent simultanément envoyer une requête sur la même table à partir de plusieurs threads. Ainsi, MySQL peut avoir des tables ouvertes indépendamment pour chaque session. Le nombre de tables ouvertes simultanément est géré par table_open_cache. Si le cache est plein et que d'autres tables sont ouvertes, MySQL ferme la table utilisée le moins récemment. Si toutes les tables du cache sont actuellement utilisées, MySQL étend temporairement le cache et ferme les tables dès qu'elles ne sont plus utilisées.

Si le nombre de tables ouvertes dépasse la valeur table_open_cache, les performances de la base de données peuvent être affectées en cas de charge de travail importante. En effet, davantage de threads sont créés et les gestionnaires de tables doivent ouvrir et fermer les tables plus fréquemment.

L'outil de recommandation pour nombre élevé de tables ouvertes de Cloud SQL analyse quotidiennement les métriques relatives au nombre de tables ouvertes sur une instance MySQL Cloud SQL. Si le nombre de tables ouvertes augmente d'une unité toutes les deux secondes ou plus rapidement au cours des 24 heures précédentes, et que le nombre de tables ouvertes dépasse la valeur table_open_cache, l'outil de recommandation vous conseille d'ajuster l'indicateur table_open_cache.

Tarifs

L'outil de recommandation pour nombre élevé de tables Cloud SQL est inclus dans le niveau de tarification standard de l'outil de recommandation.

Avant de commencer

Afin de pouvoir afficher les recommandations et les insights, procédez comme suit :

  • Pour obtenir les autorisations permettant d'afficher et d'utiliser les insights et les recommandations, assurez-vous de disposer des rôles requis.
    Tâches Rôles
    Afficher les recommandations L'un des rôles suivants : recommender.cloudsqlViewer ou cloudsql.viewer.
    Appliquer les recommandations L'un des rôles suivants : recommender.cloudsqlAdmin, cloudsql.editor ou cloudsql.admin.
    Pour plus d'informations sur les rôles, consultez les pages Comprendre les rôles et Accorder des autorisations IAM.
  • Activez l'API Recommender.

    Rôles requis pour activer les API

    Pour activer les API, vous avez besoin de l'autorisation serviceusage.services.enable. Si vous avez créé le projet, vous disposez probablement déjà de cette autorisation via le rôle Propriétaire (roles/owner). Sinon, vous pouvez l'obtenir via le rôle Administrateur d'utilisation du service (roles/serviceusage.serviceUsageAdmin). Découvrez comment attribuer des rôles.

    Activer l'API

Répertorier les recommandations de performances des instances

Vous pouvez répertorier les recommandations de performances des instances en utilisant la Cloud de Confiance console, gcloud CLI, ou l'API Recommender.

Les recommandations d'amélioration des performances des instances ne s'affichent que si des instances sont sur le point d'atteindre les limites du seuil de performances.

Console

Pour répertorier les recommandations relatives aux performances des instances à l'aide de la Cloud de Confiance console, procédez comme suit :

  1. Accédez à la page Instances Cloud SQL.

    Accéder à la page Instances Cloud SQL

  2. Cliquez sur Tout afficher sur la bannière d'augmentation des recommandations de cache d'ouverture de table.

Vous pouvez également procéder comme suit :

  1. Accédez à Active Assist. Consultez également la section Premiers pas avec le centre de recommandations.

    Accéder à Active Assist

  2. Dans la fiche Améliorer les performances des instances Cloud SQL, cliquez sur Tout afficher.

  3. Sélectionnez les instances avec la recommandation Augmenter le cache d'ouverture de table.

Gcloud CLI

Pour répertorier les recommandations d'amélioration des performances des instances à l'aide de gcloud CLI, exécutez la commande gcloud recommender recommendations list comme suit :

gcloud recommender recommendations list \
--project=PROJECT_ID \
--location=LOCATION \
--recommender=google.cloudsql.instance.PerformanceRecommender \
--filter=recommenderSubtype=MYSQL_HIGH_NUMBER_OF_OPEN_TABLES_BEST_PRACTICE

Remplacez les éléments suivants :

  • PROJECT_ID : ID de votre projet
  • LOCATION : une région, telle que us-central1

API

Pour répertorier les recommandations d'amélioration des performances des instances à l'aide de l'API Recommendations, appelez la méthode recommendations.list comme suit :

GET https://recommender.googleapis.com/v1beta1/projects/PROJECT-ID/locations/LOCATION/recommenders/google.cloudsql.instance.PerformanceRecommender.MySqlHighNumberOfTablesBestPractice/recommendations

Remplacez les éléments suivants :

  • PROJECT_ID : ID de votre projet
  • LOCATION : une région, telle que us-central1

Si l'outil de recommandation détecte des instances qui ont un grand nombre de tables ouvertes, il les répertorie dans un tableau avec d'autres recommandations de performances. Chaque ligne indique l'ID d'instance, une brève recommandation, le moteur de la base de données, l'emplacement et la date de la dernière actualisation.

Afficher les insights et les recommandations détaillées

Vous pouvez afficher des insights et des recommandations détaillées sur les instances qui comportent un grand nombre de tables ouvertes à l'aide de la Cloud de Confiance console, gcloud CLI, ou de l'API Recommender.

Console

Pour afficher des insights et des recommandations détaillées sur des instances proches de le seuil de performances à l'aide de la Cloud de Confiance console, cliquez sur le lien de recommandation dans la liste des instances.

gcloud CLI

Pour afficher des insights et des recommandations détaillées sur des instances proches du seuil de performances à l'aide de gcloud CLI, exécutez la commande gcloud recommender insights list comme suit :

gcloud recommender insights list \
--project=PROJECT_ID \
--location=LOCATION \
--insight-type=google.cloudsql.instance.PerformanceInsight \
--filter=insightSubtype=MYSQL_HIGH_NUMBER_OF_OPEN_TABLES

Remplacez les éléments suivants :

  • PROJECT_ID : ID de votre projet
  • LOCATION : une région, telle que us-central1

API

Pour afficher des insights et des recommandations détaillées sur les instances qui ont un grand nombre de tables ouvertes à l'aide de l'API Recommendations, appelez la méthode insights.list comme suit :

GET https://recommender.googleapis.com/v1beta1/projects/PROJECT-ID/locations/LOCATION/insightTypes/google.cloudsql.instance.PerformanceRecommender.MySqlHighNumberOfOpenTables/insights

Remplacez les éléments suivants :

  • PROJECT_ID : ID de votre projet
  • LOCATION : une région, telle que us-central1

La table suivante répertorie les insights et les recommandations que l'outil de recommandation de Cloud SQL pour le nombre élevé de tables ouvertes génère pour vous aider à améliorer les performances. Les sous-types sont visibles dans les résultats gcloud CLI et de l'API.

Insight Recommandation
Le nombre de tables ouvertes dépasse la valeur de l'indicateur table_open_cache.
Sous-type : MYSQL_HIGH_NUMBER_OF_OPEN_TABLES
Augmentez le paramètre table_open_cache pour augmenter le nombre maximal de tables pouvant être maintenues ouvertes simultanément dans un seul cache. L'augmentation de cet indicateur protège les performances pendant les périodes de forte utilisation, mais elle peut également augmenter l'utilisation de la mémoire.
Sous-type : MYSQL_HIGH_NUMBER_OF_OPEN_TABLES_BEST_PRACTICE

Appliquer les recommandations

Étudiez attentivement les recommandations et effectuez l'une des opérations suivantes :

  • Pour examiner la recommandation, cliquez sur Afficher l'instance. Consultez la section Optimiser les performances de votre instance et suivez les recommandations.

  • Pour ignorer la recommandation afin qu'elle ne soit plus mise en évidence et apparaisse grisée, cliquez sur Ignorer.

  • Pour fermer le panneau sans appliquer ni ignorer la recommandation, cliquez sur Annuler.

Optimiser les performances de votre instance

Pour optimiser les performances de votre instance, effectuez l'une des opérations suivantes :

  1. Augmentez la valeur de table_open_cache de 1 000 jusqu'à ce que la recommandation disparaisse. La recommandation est mise à jour quotidiennement. Par conséquent, après avoir augmenté la valeur de table_open_cache, attendez 24 heures avant de vérifier à nouveau si elle est présente.

  2. Pendant les périodes de charge de travail maximale, vérifiez la valeur de open_tables. Si la valeur de open_tables est supérieure à celle de table_open_cache, augmentez la valeur de table_open_cache pour qu'elle corresponde à celle de open_tables.

Pour en savoir plus sur l'utilisation de table_open_cache, par MySQL, consultez la page Ouverture et fermeture de tables par MySQL.

Pour en savoir plus sur la mise à jour d'un indicateur de base de données, consultez la page Configurer des indicateurs de base de données.

Étapes suivantes