Métriques d'utilisation du processeur

Cette page décrit les métriques d'utilisation du processeur fournies par Spanner. Vous pouvez afficher ces métriques dans la console Google Cloud et dans la console Cloud Monitoring.

Utilisation du processeur et priorité des tâches

Spanner mesure l'utilisation du processeur en fonction de la source et de la priorité de la tâche.

  • Source : une tâche peut être lancée par l'utilisateur ou par le système.

  • Priorité: la priorité permet à Spanner de déterminer les tâches à exécuter en premier. La priorité des tâches système est prédéterminée et ne peut pas être configurée. Les tâches utilisateur sont exécutées avec une priorité élevée, sauf indication contraire. De nombreuses requêtes de données, telles que read et executeSql, vous permettent de spécifier une priorité inférieure pour la requête. Cela peut être utile, par exemple, lorsque vous exécutez des requêtes par lot, des requêtes de maintenance ou des requêtes d'analyse, qui ne présentent pas de SLO stricts en termes de performances.

    Les tâches à priorité plus élevée sont généralement exécutées avant les tâches de priorité inférieure. Spanner permet aux tâches à priorité élevée d'utiliser jusqu'à 100% des ressources de processeur disponibles, même s'il existe des tâches de priorité inférieure en concurrence. Bien que les tâches système de priorité inférieure puissent être retardées à court terme, elles doivent s'exécuter à terme. Par conséquent, vous devez provisionner une instance avec une capacité de calcul suffisante pour gérer toutes les tâches.

    En l'absence de tâches à priorité élevée, Spanner utilisera jusqu'à 100 % des ressources de processeur disponibles pour effectuer plus rapidement les tâches de priorité inférieure. Des pics d'utilisation en arrière-plan ne traduisent alors pas l'existence d'un problème. Les tâches à faible priorité peuvent céder le pas presque instantanément aux tâches de priorité supérieure, y compris les tâches utilisateur.

Le tableau suivant présente des exemples pour chaque tâche:

Tâches utilisateur Tâches système
Priorité élevée Inclut les requêtes de données, telles que read ou executeSql, pour lesquelles aucune priorité ou PRIORITY_HIGH n'est spécifiée. Inclut la répartition des données.
Priorité moyenne Comprend :
  • Demandes de données pour lesquelles PRIORITY_MEDIUM est spécifié
  • Lectures et écritures émises à partir de tâches Dataflow, y compris les opérations d'importation et d'exportation.
Comprend :
Priorité faible Inclut les requêtes de données pour lesquelles PRIORITY_LOW est spécifié. Comprend :
  • Remplir un index.
  • Remplir une colonne générée

Métriques disponibles

Spanner fournit les métriques suivantes pour l'utilisation du processeur:

  • Utilisation lissée du processeur : moyenne glissante de l'utilisation totale du processeur, exprimée en pourcentage des ressources de processeur de l'instance, pour chaque base de données. Chaque point de données correspond au taux d'utilisation moyen relevé pour les 24 heures précédentes. Utilisez cette métrique pour créer des alertes et analyser l'utilisation du processeur sur une longue période, par exemple 24 heures. Vous pouvez afficher un graphique pour cette métrique dans la console Google Cloud ou dans la console Cloud Monitoring avec l'option Moyenne glissante sur 24 heures.

  • Utilisation du processeur suivant le niveau de priorité : utilisation du processeur, exprimée en pourcentage des ressources de processeur de l'instance, regroupées par priorité, par tâches lancées par l'utilisateur et par tâches lancées par le système. Utilisez cette métrique pour créer des alertes et analyser l'utilisation du processeur à un niveau global. Vous pouvez afficher un graphique pour cette métrique dans la console Google Cloud ou dans la console Cloud Monitoring.

  • Utilisation du processeur par type d'opération : utilisation du processeur, exprimée en pourcentage des ressources de processeur de l'instance, regroupées par opérations lancées par l'utilisateur telles que les lectures, les écritures et les commits. Utilisez cette métrique pour obtenir une répartition détaillée de l'utilisation du processeur et pour résoudre les problèmes, comme expliqué dans la section Enquêter sur une utilisation élevée du processeur. Vous pouvez créer un graphique pour cette métrique dans la console Cloud Monitoring.

    Vous pouvez également utiliser la console Cloud Monitoring pour créer des alertes concernant l'utilisation du processeur, comme décrit ultérieurement.

Le tableau ci-dessous présente nos recommandations pour une utilisation maximale du processeur avec les instances régionales et multirégionales. Les valeurs indiquées permettent de garantir que votre instance dispose d'une capacité de calcul suffisante pour continuer à diffuser votre trafic en cas de perte d'une zone entière (pour les instances régionales) ou d'une région entière (pour les instances multirégionales).

Métrique Maximum pour les instances régionales Maximum par région pour les instances multirégionales
Total priorité élevée 65 % 45 %
Agrégation lissée sur 24 heures 90 % 90 %

Pour ne pas dépasser les limites recommandées, créez dans Cloud Monitoring des alertes qui suivent l'utilisation du processeur par des tâches à priorité élevée et l'utilisation moyenne du processeur sur une période de 24 heures.

L'utilisation du processeur peut avoir un impact sur les temps de latence des requêtes. La surcharge d'un serveur backend individuel entraînera en effet une latence plus élevée des requêtes. Les applications doivent procéder à des analyses comparatives et à une surveillance active afin de vérifier que Cloud Spanner répond à leurs besoins en termes de performances.

Par conséquent, pour les applications sensibles aux performances, vous devrez peut-être réduire davantage l'utilisation du processeur à l'aide des techniques décrites dans la section suivante.

Utilisation du processeur supérieure à 100%

Dans certains cas, l'utilisation du processeur d'une instance Spanner peut dépasser 100%. Cela signifie que l'instance utilise plus de ressources de processeur que la quantité configurée pour l'instance.

Les ressources de processeur supérieures à 100% peuvent être utilisées pour fournir des performances plus élevées et plus prévisibles lors des pics d'utilisation du processeur, par exemple, causés par une augmentation soudaine du trafic des requêtes.

Toute capacité de processeur supérieure à 100% n'est PAS garantie et ne doit pas être utilisée pour les opérations de base de données normales.

L'exécution d'une instance Spanner pendant une période prolongée proche ou supérieure de 100% d'utilisation du processeur peut entraîner une dégradation des performances et de la latence de fonctionnement normal. Les ressources de processeur supplémentaires ne constituent pas un mécanisme sûr sur lequel s'appuyer pour garantir des performances constantes.

Les clients ne sont pas facturés pour cette utilisation supplémentaire du processeur.

Réduire l'utilisation du processeur

Cette section explique comment réduire l'utilisation du processeur d'une instance.

En règle générale, nous vous recommandons de commencer par augmenter la capacité de calcul de votre instance. Une fois que vous avez augmenté la capacité de calcul, vous pouvez examiner et traiter les causes premières d'une utilisation élevée du processeur.

Augmenter la capacité de calcul

Si vous dépassez les valeurs maximales recommandées en termes d'utilisation du processeur, nous vous conseillons vivement d'augmenter la capacité de calcul de l'instance afin qu'elle puisse continuer à fonctionner efficacement. Si vous souhaitez automatiser ce processus, vous pouvez créer une application qui surveille l'utilisation du processeur, puis augmente ou diminue la capacité de calcul en fonction des besoins à l'aide de la méthode UpdateInstance.

Pour déterminer la capacité de calcul dont vous avez besoin, tenez compte à la fois de l'utilisation maximale du processeur par les tâches à priorité élevée et de la moyenne lissée sur 24 heures. Allouez toujours une capacité de calcul suffisante pour que l'utilisation du processeur reste inférieure aux valeurs maximales recommandées. Comme décrit précédemment, vous devrez peut-être allouer de la capacité de calcul supplémentaire pour les applications sensibles aux performances (par exemple, pour gérer les pics de charge de travail).

Si vous ne disposez pas d'une capacité de calcul suffisante, Spanner reporte les tâches par niveau de priorité. Les tâches système à faible priorité, telles que le compactage de base de données et la validation de modifications de schéma, peuvent être différées en faveur des tâches utilisateur. Cependant, ces tâches sont essentielles à l'état de votre instance, et Spanner ne peut pas les reporter indéfiniment. Si Spanner ne peut pas terminer ses tâches système à faible priorité dans un délai donné (de l'ordre de plusieurs heures à une journée) en raison d'insuffisance de ressources de calcul, Spanner peut augmenter la priorité des tâches système. Cette modification affecte les performances des tâches utilisateur.

Enquêter davantage avec les outils d'introspection

Si la métrique Utilisation du processeur par type d'opération indique qu'un type d'opération particulier contribue à une utilisation élevée du processeur, utilisez les outils d'introspection de Spanner pour poursuivre le dépannage. Pour en savoir plus, consultez la page Enquêter sur une utilisation élevée du processeur.

Étapes suivantes