Les objectifs sont définis de la même manière que pour les contraintes. L'ensemble complet d'objectifs est documenté dans le Table 12–1.
Il existe deux catégories d'objectifs.
Il s'agit d'un objectif qui varie en fonction de la nature de la charge de travail s'exécutant sur le système, à l'image de l'objectif utilization. Le chiffre d'utilisation pour un lot de ressources dépend de la nature de la charge de travail active.
Il s'agit d'un objectif qui ne varie pas en fonction de la nature de la charge de travail s'exécutant sur le système. C'est le cas de l'objectif CPU locality. L'estimation du voisinage d'un lot de ressources ne dépend pas de la nature de la charge de travail active.
Vous pouvez définir trois types d'objectif.
|
Les objectifs sont stockés dans les chaînes de propriétés dans la configuration libpool. Les noms des propriétés se présentent de la façon suivante :
system.poold.objectives
pset.poold.objectives
La syntaxe des objectifs est la suivante :
objectives = objective [; objective]*
objective = [n:] keyword [op] [value]
Tous les objectifs possèdent un préfixe relatif au niveau d'importance (facultatif). Ce niveau d'importance fait office de multiplicateur pour l'objectif et augmente par conséquent sa contribution à l'évaluation de la fonction de l'objectif. La plage d'évaluation va de 0 à INT64_MAX (9223372036854775807). Si vous omettez de spécifier le niveau d'importance, la valeur par défaut est 1.
Certains types d'élément acceptent plusieurs types d'objectif. C'est le cas, par exemple, de pset. Vous pouvez, en effet, définir plusieurs types d'objectif pour ces éléments. Il est possible également de fixer plusieurs objectifs d'utilisation pour un même élément pset.
La section Etablissement des objectifs de configuration offre des exemples d'utilisation.
L'objectif wt-load favorise les configurations faisant correspondre les allocations aux utilisations réelles des ressources. Un lot de ressources nécessitant plus de ressources bénéficiera de plus de ressources lorsque cette objectif est actif. wt-load signifie charge pondéré.
Utilisez cet objectif lorsque vous êtes satisfait des contraintes que vous avez établies à l'aide des propriétés minimum et maximum et souhaitez que le démon manipule librement les ressources dans les limites autorisées.
L'objectif locality change l'impact du voisinage, tel qu'il est mesuré par les données du groupe de voisinages (lgroup), sur la configuration sélectionnée. La latence est une autre définition du voisinage. lgroup décrit les ressources de la CPU et de la mémoire. lgroup est utilisé par le système Oracle Solaris pour déterminer la distance entre les ressources en fonction du facteur temps.
Cet objectif peut prendre l'une des trois valeurs suivantes :
Si cette valeur est définie, les configurations qui maximisent le voisinage des ressources sont favorisées.
Si cette valeur est définie, les configurations qui minimisent le voisinage des ressources sont favorisées.
Si cette valeur est définie, le voisinage des ressources n'a pas d'influence sur les configurations favorisées. Il s'agit de la valeur par défaut de l'objectif locality.
En général, l'objectif locality doit être défini sur tight. Cependant, pour optimiser la bande passante de la mémoire ou minimiser l'impact des opérations de reconfiguration dynamique sur un lot de ressources, vous pouvez lui donner la valeur loose ou conserver le paramètre par défaut (none).
L'objectif utilization favorise les configurations allouant des ressources aux partitions ne satisfaisant pas l'objectif d'utilisation spécifié.
Il est défini au moyen d'opérateurs et de valeurs. Les opérateurs qu'il est possible d'utiliser sont les suivants :
L'opérateur "inférieur à" indique que la valeur spécifiée représente une valeur cible maximum.
L'opérateur "supérieur à" indique que la valeur spécifiée représente une valeur cible minimum.
Cet opérateur Indique que la valeur spécifiée est la valeur cible pour laquelle une certaine fluctuation est acceptable.
Un seul objectif d'utilisation peut être prévu pour chaque type d'opérateur dans le cadre d'un jeu de processeurs (pset).
Si vous utilisez l'opérateur ~, les opérateurs < et > ne sont pas exploitables.
Si vous utilisez les opérateurs < et >, l'opérateur ~ n'est pas exploitable. Les paramètres de l'opérateur < et de l'opérateur > ne peuvent pas être contradictoires.
Vous pouvez combiner les opérateurs < et> pour définir une plage. Les valeurs seront validées pour éviter tout chevauchement.
Dans l'exemple suivant, poold permet d'évaluer ces objectifs pour le jeu de processeurs (pset) :
L'objectif utilization doit être maintenu entre 30 et 80 %.
L'objectif locality doit être maximisé pour le jeu de processeurs.
Il convient d'accorder le niveau d'importance par défaut (1) aux objectifs.
pset.poold.objectives "utilization > 30; utilization < 80; locality tight"
La section Etablissement des objectifs de configuration offre des exemples d'utilisation supplémentaires.