Vue d'ensemble de l'affinité processeur

À partir de la version 3.5.27, il est possible de configurer l'affinité processeur à la fois pour le processus Wrapper et pour le processus JVM qu'il contrôle.

L'affinité processeur vous permet de spécifier qu'un processus ne s'exécutera que sur des unités centrales de traitement (CPU) désignées plutôt que sur n'importe quel CPU.

Le processus Wrapper et le processus JVM ont chacun leurs propres propriétés pour configurer l'affinité processeur, mais si vous ne spécifiez que celles du Wrapper, par défaut le processus JVM contrôlé héritera de la même configuration et s'exécutera automatiquement en utilisant le(s) même(s) CPU que le processus Wrapper.

NOTE

  • La possibilité de configurer l'affinité CPU a été ajoutée dans la version 3.5.27 pour Windows et Linux.
  • Depuis la version 3.5.28, il est également possible de configurer l'affinité CPU pour AIX, FreeBSD, HP-UX et Solaris. Cependant, il convient de noter que sur HP-UX et Solaris, il n'est possible de lier qu'un seul CPU par processus (le Wrapper ou le processus JVM).
  • Du fait que Mac OSX n'exporte pas d'interfaces pour identifier les processeurs, il n'est actuellement pas possible d'implémenter l'affinité de processus sur ce système.
  • La fonctionnalité d'affinité processeur n'a pas été testée sur des systèmes comportant plus de 64 processeurs logiques.

Les propriétés utilisées pour configurer l'affinité processeur du processus Wrapper sont décrites ci-dessous :

Les propriétés utilisées pour configurer l'affinité processeur du processus JVM sont décrites ci-dessous :

<n> composant :

Le composant "<n>" des propriétés ci-dessus est un nombre entier compris entre "1" et "256" et désignant un CPU spécifique. Il doit être inférieur ou égal au nombre réel de CPU présents sur la machine où le Wrapper sera exécuté.

NOTE

Si vous essayez de définir l'affinité CPU au niveau du système (par exemple, depuis le gestionnaire des tâches ou depuis l'invite de commandes), vous pouvez parfois constater que le premier CPU est assigné avec l'index 0. En réalité, il n'existe pas de standard définissant la façon dont les CPU doivent être indexés et certains systèmes d'exploitation peuvent commencer à les numéroter à partir de 0 tandis que d'autres commenceront à partir de 1. Nous avons décidé de désigner le premier CPU avec l'index 1 lors de la configuration du Wrapper.

Propriétés d'affinité processeur pour le processus Wrapper

wrapper.cpu_affinity.set

Compatibilité :3.5.27
Éditions :Édition ProfessionnelleÉdition Standard (non prise en charge)Édition Community (non prise en charge)
Plateformes :WindowsMac OSX (Non pris en charge)LinuxAlpine Linux (Non pris en charge)FreeBSDSolarisIBM z/Linux

Définit si l'affinité processeur est activée ou désactivée pour le Wrapper. La valeur par défaut est FALSE, ce qui signifie que le Wrapper s'exécutera sur n'importe quel CPU.

Définissez la propriété à TRUE pour activer le paramétrage d'affinité au niveau du Wrapper.

Exemple :
wrapper.cpu_affinity.set=TRUE

wrapper.cpu_affinity.default

Compatibilité :3.5.27
Éditions :Édition ProfessionnelleÉdition Standard (non prise en charge)Édition Community (non prise en charge)
Plateformes :WindowsMac OSX (Non pris en charge)LinuxAlpine Linux (Non pris en charge)FreeBSDSolarisIBM z/Linux

Définissez cette propriété à TRUE pour autoriser initialement tous les CPU au Wrapper. Définissez-la à FALSE pour bloquer initialement tous les CPU au Wrapper. La valeur par défaut est FALSE.

Cette propriété est destinée à être redéfinie par au moins une des propriétés wrapper.cpu_affinity.<n> afin de créer une ou des exception(s) pour des CPU individuels.

Exemple 1 (désactiver tous les CPU par défaut) :
wrapper.cpu_affinity.default=FALSE
Exemple 2 (activer tous les CPU par défaut) :
wrapper.cpu_affinity.default=TRUE

NOTE

Si wrapper.cpu_affinity.default est défini à TRUE mais qu'aucune des propriétés wrapper.cpu_affinity.<n> n'est définie à FALSE, cela aura le même effet que si l'affinité processeur était désactivée.

Au contraire, si wrapper.cpu_affinity.default est défini à FALSE mais qu'aucune des propriétés wrapper.cpu_affinity.<n> n'est définie à TRUE, cela lèvera une exception car le Wrapper ne sera autorisé à s'exécuter sur aucun CPU de la machine (voir wrapper.cpu_affinity.strict).

wrapper.cpu_affinity.<n>

Compatibilité :3.5.27
Éditions :Édition ProfessionnelleÉdition Standard (non prise en charge)Édition Community (non prise en charge)
Plateformes :WindowsMac OSX (Non pris en charge)LinuxAlpine Linux (Non pris en charge)FreeBSDSolarisIBM z/Linux

Cet ensemble de propriétés est utilisé pour autoriser ou bloquer des CPU individuels pour le processus Wrapper. Vous pouvez autoriser/bloquer un ou plusieurs processeurs en ajoutant une ligne par CPU ciblé.

Le composant "<n>" de cette propriété est un nombre entier commençant à "1" et désignant un CPU spécifique. Il doit être inférieur ou égal au nombre réel de CPU présents sur la machine où le Wrapper sera exécuté.

Exemple 1 (autorise le Wrapper à s'exécuter uniquement sur les CPU numéro 1 et 2) :
wrapper.cpu_affinity.default=FALSE
wrapper.cpu_affinity.1=TRUE
wrapper.cpu_affinity.2=TRUE
Exemple 2 (empêche le Wrapper de s'exécuter sur les CPU numéro 1 et 3) :
wrapper.cpu_affinity.default=TRUE
wrapper.cpu_affinity.1=FALSE
wrapper.cpu_affinity.3=FALSE

NOTE

Pour HP-UX et Solaris, il n'est possible de lier qu'un seul CPU au Wrapper. Si la configuration est telle que plusieurs CPU sont activés, le Wrapper s'arrêtera par défaut, ou sélectionnera le premier CPU actif si wrapper.cpu_affinity.strict a été défini à FALSE.

wrapper.cpu_affinity.strict

Compatibilité :3.5.27
Éditions :Édition ProfessionnelleÉdition Standard (non prise en charge)Édition Community (non prise en charge)
Plateformes :WindowsMac OSX (Non pris en charge)LinuxAlpine Linux (Non pris en charge)FreeBSDSolarisIBM z/Linux

La valeur par défaut de cette propriété est TRUE, ce qui signifie que si les propriétés de configuration du Wrapper ne correspondent pas aux CPU réels de la machine, le Wrapper consignera les exceptions et finira par s'arrêter. Pour continuer à s'exécuter sans bloquer sur ces exceptions, vous pouvez définir wrapper.cpu_affinity.strict à FALSE. Cela fera simplement consigner au Wrapper des messages avec un statut 'WARNING'.

Exemple :
wrapper.cpu_affinity.strict=FALSE

AVERTISSEMENT

Les exceptions peuvent être les suivantes :

  • L'un des CPU définis avec 'wrapper.cpu_affinity.<n>' a été défini à TRUE mais n'existe pas réellement sur la machine. En définissant wrapper.cpu_affinity.strict=FALSE, le Wrapper ignorera simplement le(s) CPU inexistant(s).
  • La configuration est telle que le Wrapper n'est autorisé à s'exécuter sur aucun CPU de la machine. En définissant wrapper.cpu_affinity.strict=FALSE, le Wrapper s'exécutera sur n'importe quel CPU de la machine (comme si l'affinité processeur était désactivée).
  • Pour une raison quelconque, le système d'exploitation ne permet d'allouer aucun des CPU spécifiés. En définissant wrapper.cpu_affinity.strict=FALSE, le Wrapper s'exécutera sur n'importe quel CPU de la machine (comme si l'affinité processeur était désactivée).

Propriétés d'affinité processeur pour le processus JVM

wrapper.java.cpu_affinity.set

Compatibilité :3.5.27
Éditions :Édition ProfessionnelleÉdition Standard (non prise en charge)Édition Community (non prise en charge)
Plateformes :WindowsMac OSX (Non pris en charge)LinuxAlpine Linux (Non pris en charge)FreeBSDSolarisIBM z/Linux

Définit si l'affinité processeur est activée ou désactivée pour le processus JVM. La valeur par défaut est FALSE, ce qui signifie que le processus JVM s'exécutera sur n'importe quel CPU.

Définissez la propriété à TRUE pour activer le paramétrage d'affinité pour la JVM.

Exemple :
wrapper.java.cpu_affinity.set=TRUE

wrapper.java.cpu_affinity.default

Compatibilité :3.5.27
Éditions :Édition ProfessionnelleÉdition Standard (non prise en charge)Édition Community (non prise en charge)
Plateformes :WindowsMac OSX (Non pris en charge)LinuxAlpine Linux (Non pris en charge)FreeBSDSolarisIBM z/Linux

Définissez cette propriété à TRUE pour autoriser initialement tous les CPU au processus JVM. Définissez-la à FALSE pour bloquer initialement tous les CPU au processus JVM. La valeur par défaut est FALSE.

Cette propriété est destinée à être redéfinie par au moins une des propriétés wrapper.cpu_affinity.<n> afin de créer une ou des exception(s) pour des CPU individuels.

Exemple 1 (désactiver tous les CPU par défaut) :
wrapper.java.cpu_affinity.default=FALSE
Exemple 2 (activer tous les CPU par défaut) :
wrapper.java.cpu_affinity.default=TRUE

NOTE

Si wrapper.java.cpu_affinity.default est défini à TRUE mais qu'aucune des propriétés wrapper.java.cpu_affinity.<n> n'est définie à FALSE, cela entraînera l'exécution du processus JVM sur n'importe quel CPU.

Au contraire, si wrapper.java.cpu_affinity.default est défini à FALSE mais qu'aucune des propriétés wrapper.java.cpu_affinity.<n> n'est définie à TRUE, cela lèvera une exception car le processus JVM ne sera autorisé à s'exécuter sur aucun CPU de la machine (voir wrapper.java.cpu_affinity.strict).

wrapper.java.cpu_affinity.<n>

Compatibilité :3.5.27
Éditions :Édition ProfessionnelleÉdition Standard (non prise en charge)Édition Community (non prise en charge)
Plateformes :WindowsMac OSX (Non pris en charge)LinuxAlpine Linux (Non pris en charge)FreeBSDSolarisIBM z/Linux

Cet ensemble de propriétés est utilisé pour autoriser ou bloquer des CPU individuels pour le processus JVM. Vous pouvez autoriser/bloquer un ou plusieurs processeurs en ajoutant une ligne par CPU ciblé.

Le composant "<n>" de cette propriété est un nombre entier commençant à "1" et désignant un CPU spécifique. Il doit être inférieur ou égal au nombre réel de CPU présents sur la machine où le Wrapper sera exécuté.

Exemple 1 (autorise le processus JVM à s'exécuter uniquement sur les CPU numéro 1 et 2) :
wrapper.java.cpu_affinity.default=FALSE
wrapper.java.cpu_affinity.1=TRUE
wrapper.java.cpu_affinity.2=TRUE
Exemple 2 (empêche le processus JVM de s'exécuter sur les CPU numéro 1 et 3) :
wrapper.java.cpu_affinity.default=TRUE
wrapper.java.cpu_affinity.1=FALSE
wrapper.java.cpu_affinity.3=FALSE

NOTE

Pour HP-UX et Solaris, il n'est possible de lier qu'un seul CPU au processus JVM. Si la configuration est telle que plusieurs CPU sont activés, le Wrapper s'arrêtera par défaut, ou sélectionnera le premier CPU actif si wrapper.java.cpu_affinity.strict a été défini à FALSE.

wrapper.java.cpu_affinity.strict

Compatibilité :3.5.27
Éditions :Édition ProfessionnelleÉdition Standard (non prise en charge)Édition Community (non prise en charge)
Plateformes :WindowsMac OSX (Non pris en charge)LinuxAlpine Linux (Non pris en charge)FreeBSDSolarisIBM z/Linux

La valeur par défaut de cette propriété est TRUE, ce qui signifie que si les propriétés de configuration du processus JVM ne correspondent pas aux CPU réels de la machine, le Wrapper consignera les exceptions et finira par s'arrêter. Pour continuer à s'exécuter sans bloquer sur ces exceptions, vous pouvez définir wrapper.java.cpu_affinity.strict à FALSE. Cela fera simplement consigner au Wrapper des messages avec un statut 'WARNING'.

Exemple :
wrapper.java.cpu_affinity.strict=FALSE

AVERTISSEMENT

Les exceptions peuvent être les suivantes :

  • L'un des CPU définis avec 'wrapper.java.cpu_affinity.<n>' a été défini à TRUE mais n'existe pas réellement sur la machine. En définissant wrapper.java.cpu_affinity.strict=FALSE, le Wrapper ignorera simplement le(s) CPU inexistant(s).
  • La configuration est telle que le Wrapper n'est autorisé à s'exécuter sur aucun CPU de la machine. En définissant wrapper.java.cpu_affinity.strict=FALSE, le processus JVM s'exécutera sur n'importe quel CPU de la machine.
  • Pour une raison quelconque, le système d'exploitation ne permet d'allouer aucun des CPU spécifiés. En définissant wrapper.java.cpu_affinity.strict=FALSE, le processus JVM s'exécutera sur n'importe quel CPU de la machine.