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 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é aide Spanner à 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 à 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 être exécutées à terme. Vous devez donc provisionner votre instance avec une capacité de calcul suffisante pour gérer toutes les tâches.

    S'il n'y a pas de tâches à priorité élevée, Spanner utilise 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é ni PRIORITY_HIGH n'est spécifiée. Inclut la répartition des données.
Priorité moyenne Inclus : Inclus :
Priorité faible Inclut les demandes de données pour lesquelles PRIORITY_LOW est spécifié. Inclus :
  • Remplissage d'un index
  • Remplir une colonne générée

Métriques disponibles

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

  • 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 un graphique 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 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 d'utilisation du processeur, comme décrit plus loin.

Le tableau suivant présente nos recommandations concernant l'utilisation maximale du processeur pour les instances régionales, birégionales et multirégionales. Ces valeurs 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 birégionales et multirégionales).

Métrique Maximum pour les instances régionales Maximum par région pour les instances birégionales et 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 exécuter des analyses comparatives et une surveillance active pour vérifier que Spanner répond à leurs exigences 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 atteindre plus de 100%. Cela signifie que l'instance utilise plus de ressources de processeur que la quantité configurée pour l'instance.

Des 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 en raison d'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 à une utilisation du processeur presque égale ou supérieure à 100% pendant une période prolongée peut entraîner une dégradation des performances et de la latence des opérations normales. Les ressources de processeur supplémentaires ne constituent pas un mécanisme sûr 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 selon leur 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 l'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 certain délai (de l'ordre de plusieurs heures à une journée) en raison de ressources de calcul insuffisantes, 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 à l'utilisation intensive 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