Vous pouvez utiliser l'ordonnanceur équitable (FSS, Fair Share Scheduler) pour contrôler l'allocation des ressources CPU disponibles aux différentes zones en fonction de leur charge de travail. Celle-ci se reflète dans le nombre de parts de ressources CPU que vous assignez à chaque zone. Même si vous n'utilisez pas FSS pour gérer l'allocation de ressources CPU aux zones, vous pouvez définir la classe de programmation des zones pour utiliser FSS de manière à pouvoir assigner des parts aux projets au sein des zones.
Lorsque vous définissez explicitement la propriété cpu-shares, l'ordonnanceur équitable sert de classe de programmation pour la zone concernée. Dans ce cas, il est cependant préférable de définir FSS comme classe de programmation par défaut du système à l'aide de la commande dispadmin. Toutes les zones disposent ainsi d'une part équitable des ressources CPU du système. Toute zone pour laquelle la propriété cpu-shares n'est pas définie utilise la classe de programmation par défaut du système. Pour définir la classe de programmation d'une zone, vous pouvez procéder de différentes façons :
Dans la version Solaris 10 8/07, vous pouvez utiliser la propriété scheduling-class de zonecfg.
Vous pouvez avoir recours à l'utilitaire de pools de ressources. Si la zone est associée à un pool dont la propriété pool.scheduler est définie sur une classe de programmation valide, les processus exécutés dans cette zone le sont dans cette classe de programmation par défaut. Reportez-vous aux sections Introduction aux pools de ressources et Association d'un pool avec une classe de programmation.
Si l'instance de contrôle de ressource cpu-shares est définie et si vous n'avez pas défini FSS comme la classe de programmation pour la zone, zoneadmd s'en charge lors de l'initialisation de celle-ci.
Si la classe de programmation n'est pas définie par toute autre action, la zone hérite de la classe de programmation par défaut du système.
Notez que vous pouvez utiliser la commande priocntl décrite dans la page de manuel priocntl(1) pour placer les processus en cours d'exécution dans une autre classe de programmation sans modifier la classe de programmation par défaut et sans réinitialiser.