Définition de règles de mise à l'échelle

Des règles de mise à l'échelle permettent de démarrer et d'arrêter des membres de cluster dynamique sur la base de métriques configurables. Des règles de mise à l'échelle peuvent être définies pour tout ou partie des clusters. Si aucune règle n'est définie, une règle intégrée est utilisée.

Pourquoi et quand exécuter cette tâche

Le contrôleur de mise à l'échelle utilise ces règles pour prendre des décisions concernant la gestion des charges de travail. Par défaut, une règle de mise à l'échelle intégrée est imbriquée au contrôleur de mise à l'échelle. Vous pouvez si vous le souhaitez remplacer la règle de mise à l'échelle intégrée en définissant l'un ou les deux éléments de niveau supérieur, la règle de mise à l'échelle par défaut et la règle de mise à l'échelle. La règle de mise à l'échelle intégrée est la suivante :
  • Au moins deux membres de cluster, le cas échéant, demeurent actifs. Le nombre minimum peut ne pas être obtenu si tout ou partie des membres dépassent les seuils de métrique.
  • Un membre de cluster supplémentaire est démarré lorsque l'utilisation UC moyenne, ou l'utilisation de la mémoire de tous les membres actifs, dépasse 90%.
  • Un membre de cluster est arrêté lorsque l'utilisation UC moyenne et l'utilisation de segment de mémoire passent à moins de 30 %.

Une règle de mise à l'échelle peut être définie pour tous les clusters à partir de la règle de mise à l'échelle par défaut. La règle de mise à l'échelle par défaut hérite des métriques de la règle de mise à l'échelle, y compris des valeurs d'instance min et max. Les modifications apportées à la règle de mise à l'échelle par défaut, indiquées par l'utilisateur, remplacent la valeur intégrée. Les valeurs qui ne sont pas spécifiées dans votre règle de mise à l'échelle par défaut sont héritées de la règle de mise à l'échelle intégrée.

A la différence de la règle de mise à l'échelle intégrée, les mesures de la règle de mise à l'échelle ne sont pas héritées de la règle de mise à l'échelle intégrée ou par défaut. Toutefois, les valeurs d'instance min et max sont initialisées aux valeurs de la règle intégrée. Les métriques de règle de mise à l'échelle étant considérées comme des valeurs facultatives, seules les métriques spécifiées dans la règle sont incluses dans les décisions de mise à l'échelle. Les mesures non incluses dans la règle de mise à l'échelle ne sont pas analysées lors des prises de décision de mise à l'échelle.

Il existe deux niveaux de règles de mise à l'échelle. Vous pouvez remplacer la règle de mise à l'échelle intégrée en définissant l'un ou les deux éléments de niveau supérieur. Voici les deux niveaux qui peuvent être définis :
  • Règle de mise à l'échelle par défaut

    Vous pouvez définir un règle de mise à l'échelle unique pour gérer tous les clusters pour lesquels il n'est pas nécessaire qu'une règle de mise à l'échelle plus spécifique soit définie.

    L'exemple suivant illustre la définition d'une règle de mise à l'échelle par défaut qui définit le nombre minimum de membres de cluster actifs à 3.
    <scalingDefinitions>
     <defaultScalingPolicy min="3"/>
    </scalingDefinitions>
  • Règle de mise à l'échelle

    Vous pouvez définir une règle de mise à l'échelle pour gérer un ou plusieurs clusters avec des critères ciblés qui sont indiqués dans la règle de mise à l'échelle. Les définitions de règle de mise à l'échelle n'héritant pas des seuils de métrique, seuls ceux qui sont spécifiés sont surveillés. Tous les autres seuils sont ignorés dès lors qu'ils sont associés aux décisions de mise à l'échelle. Les valeurs de règles de mise à l'échelle pour les instances min et max sont toujours respectées si elles ne sont pas spécifiées.

    L'exemple suivant illustre la définition d'une règle de mise à l'échelle qui modifie les seuils d'utilisation d'UC pour le démarrage et l'arrêt des serveurs dans un cluster nommé cluster1.
    <scalingDefinitions>
      <scalingPolicy id="cluster1Policy">
      <bind clusters="cluster1"/>
      <metric name="CPU" min="10" max="70"/>
     </scalingPolicy>
    </scalingDefinitions>
    La valeur de l'attribut clusters de l'élément bind est une liste séparée par des virgules de noms de cluster. Un astérisque peut être utilisé en fin de nom uniquement en tant que caractère générique correspondant à un zéro caractères ou plus. Exemple :
    <bind clusters="west,south*"/>
    Dans cet exemple, la règle de mise à l'échelle s'applique à un cluster nommé west et à tous les clusters dont le nom commence par south. Si un nom de cluster est concerné par plusieurs règles, le contrôleur de mise à l'échelle utilise les règles suivantes pour choisir une règle :
    • Une correspondance exacte est préférable à une correspondance de caractère générique.
    • En cas de plusieurs correspondances avec caractère générique, la règle avec le préfixe le plus long est utilisée.

La règle se met à l'échelle en fonction des valeurs min et max. Dans l'exemple précédent, les clusters sont mis à l'échelle uniquement en fonction des valeurs d'UC spécifiées, où min=10 et max=70.

Les décisions de mise à l'échelle sont effectuées au niveau d'un cluster. Chaque membre de cluster surveille ses propres mesures. La valeur de mesure UC et Mémoire d'un serveur est en fait la valeur la plus élevée du processus JVM serveur ou de l'hôte du serveur. La valeur de mesure Segment de mémoire est extraite uniquement du processus JVM serveur. Si une modification mesurable est détectée dans une mesure surveillée, cette mesure est envoyée au contrôleur pour analyse. Toutes les mesures de membre de cluster sont accumulées et une moyenne de cluster est calculée pour chaque mesure. La valeur calculée de chaque métrique est ensuite comparée au seuil supérieur ou inférieur défini afin de déterminer si une décision de mise à l'échelle va être déclenchée.

Les décisions d'augmentation sont prises sur la base de métriques individuelles. Toutes les métriques surveillées sont analysées pour le cluster et si l'une d'elles dépasse le seuil max de la règle, un événement de mise à l'échelle est déclenché. Les décisions de diminution sont prises en fonction de l'ensemble des métriques surveillées. La moyenne de cluster pour chaque mesure surveillée est analysée. Si toutes les métriques sont en dessous du seuil de règle min, un événement de mise à l'échelle est déclenché.

Une fois qu'une décision de mise à l'échelle est prise, le contrôleur de mise à l'échelle sélectionne une cible. La cible de mise à l'échelle est l'hôte sur lequel l'action d'arrêt de serveur (pour diminution) ou de démarrage de serveur (pour augmentation) est exécutée. Lors de la détermination d'une cible pour une action de mise à l'échelle par ajout, les mesures au niveau de l'hôte sont prises en considération. Si l'une des métriques de niveau d'hôte dépasse le seuil max de sa règle, le contrôleur de mise à l'échelle ne prend pas cet hôte et en choisit un autre pour l'action d'augmentation.

La règle de mise à l'échelle peut influencer la sélection de la cible de mise à l'échelle. Si elle spécifie scalingPreference="horizontal", le contrôleur de mise à l'échelle démarre un serveur sur l'hôte éligible avec le moins de serveurs actifs et arrêter un serveur sur l'hôte avec le plus de serveurs actifs. Si elle spécifie scalingPreference="vertical", le contrôleur de mise à l'échelle démarre un serveur sur l'hôte éligible avec le plus de serveurs actifs et arrêter un serveur sur l'hôte avec le moins de serveurs actifs. Le contrôleur de mise à l'échelle tente de placer des serveurs dans un même cluster sur différents hôtes quand cela est possible, quel que soit le scalingPreference choisi.

Pour plus d'informations sur la métrique scalingPolicy, consultez Contrôleur de mise à l'échelle.

Vous pouvez utiliser l'élément hostGroup pour limiter les hôtes pouvant être sélectionnés pour la mise à disposition d'un nouveau serveur. L'attribut tags spécifie une liste de balises de métadonnées d'administration. Lorsque le contrôleur de mise à l'échelle doit effectuer une mise à disposition d'un serveur, il peut uniquement sélectionner un hôte doté d'au moins une balise correspondante. Par exemple, la règle ci-après indique que des serveurs peuvent être mis à disposition sur un hôte doté de la balise tag1 ou sur un hôte doté de la balise tag2.
<scalingDefinitions>        
  <scalingPolicy id="provisionPolicy">           
   <bind clusters="defaultStackGroup.deployMember"/>           
   <hostGroup tags="tag1 tag2"/>        
 </scalingPolicy>    
</scalingDefinitions>
Remarque : Si vous ne spécifiez pas l'élément hostGroup, le contrôleur de mise à l'échelle peut mettre à disposition un serveur sur n'importe quel hôte qui est enregistré auprès de la collectivité.

Pour plus d'informations sur la procédure de définition de balises de métadonnées d'administration, voir Définition de métadonnées d'administration pour les ressources Liberty.

Procédure

  1. Dans le fichier server.xml du contrôleur de mise à l'échelle, ajoutez les définitions de mise à l'échelle par défaut.
    <scalingDefinitions>
     <defaultScalingPolicy enabled="true" min="1" max="2"/>
    </scalingDefinitions>
  2. Lorsqu'une règle de mise à l'échelle est modifiée, le fichier server.xml sur le contrôleur est également modifié. Vous pouvez rechercher les messages ci-après dans le fichier messages.log afin de vérifier que le contrôleur a bien été mis à jour.
    CWWKG0016I: Démarrage de la mise à jour de la configuration du serveur.
    CWWKG0028A: Processing included configuration resource: /opt/IBM/Liberty/wlp/usr/
    CWWKG0017I: La mise à jour de la configuration du serveur a abouti
    en 0,052 secondes
    Les messages d'erreur suivants figurent dans le fichier messages.log si la règle de mise à l'échelle ne comportent pas les seuils de métrique nécessaires. Suivez l'action de l'utilisateur pour corriger l'erreur.
    CWWKV0126W: La configuration de la stratégie de mise à l'échelle {0} ne contient pas un seuil de mesure min ou max.
    CWWKV0127W: La configuration de la stratégie de mise à l'échelle {0} ne contient pas un seuil de mesure max.
    CWWKV0128W: La configuration de la stratégie de mise à l'échelle {0} ne contient pas un seuil de mesure min.

Résultats

Vos règles de mise à l'échelle sont à présent définies.


Icône indiquant le type de rubrique Rubrique Tâche

Nom du fichier : twlp_wve_definingscalingpolicies.html