Présentation d'Ulimit

Compatibilité :3.5.31
Éditions :Édition ProfessionnelleÉdition StandardÉdition Community
Plateformes :Windows (Non pris en charge)Mac OSXLinuxAlpine LinuxFreeBSDSolarisIBM z/Linux

Le Java Service Wrapper a la capacité de limiter l'utilisation des ressources à l'échelle du système.

Une ressource a 2 limites : soft et hard. Voici les règles à respecter :

  • La limite soft ne peut pas être supérieure à la limite hard.
  • La limite hard ne peut pas être changée à une valeur supérieure à celle définie par l'utilisateur root.

Pour voir les limites actuelles de votre système, veuillez exécuter les commandes suivantes dans un terminal :

Afficher les limites :
# To see the list of soft limits:
ulimit -a

# To see the list of hard limits:
ulimit -Ha

Actuellement, <resource> peut être l'un des suivants :

  • nofile (Depuis 3.5.31) :

    Pour définir les limites du nombre de descripteurs de fichiers ouverts, c'est-à-dire le nombre maximal de fichiers que le Wrapper et son processus enfant peuvent ouvrir.

  • data (Depuis 3.5.33) :

    Pour définir les limites de la taille du segment de données de chaque processus démarré par le Wrapper.

Comme alternative aux propriétés du Wrapper, vous pouvez également utiliser la commande intégrée 'ulimit' dans le script shell qui lance le Wrapper. Les limites de ressources du shell seront héritées par le Wrapper, l'application Java et tous ses processus enfants.

Exemple :
# Set the soft limit for the number of file descriptors:
ulimit -n 2048

# Set the hard limit for the number of file descriptors:
ulimit -H -n 50000

NOTE

La plage de valeurs autorisées peut varier selon le système d'exploitation et le type de ressource. Certains systèmes autoriseront la valeur 'unlimited' pour certaines ressources tandis que d'autres n'accepteront pas cette valeur.

Définir wrapper.ulimit.nofile.strict à FALSE ou wrapper.ulimit.nofile.soft à HARD peut aider en augmentant automatiquement les valeurs jusqu'à leurs maximums.

wrapper.ulimit.<resource>.soft

Compatibilité :3.5.31
Éditions :Édition ProfessionnelleÉdition StandardÉdition Community
Plateformes :Windows (Non pris en charge)Mac OSXLinuxAlpine LinuxFreeBSDSolarisIBM z/Linux

Cette propriété est utilisée pour définir la limite soft de la ressource spécifiée. Elle s'applique au Wrapper et à ses processus enfants.

La valeur par défaut est héritée des limites définies sur le shell qui a démarré le Wrapper.

La valeur 'HARD' peut être utilisée pour définir la limite soft à la valeur de la limite hard.

La valeur 'UNLIMITED' peut être utilisée pour définir la limite au maximum pris en charge par le système d'exploitation. Cela nécessite toutefois que la limite hard soit également définie à UNLIMITED.

NOTE

Si 'unlimited' n'est pas pris en charge par le système d'exploitation pour la ressource spécifiée, il sera résolu à la valeur de la limite hard actuelle lorsque wrapper.ulimit.<resource>.strict est défini à FALSE.

Exemple :
wrapper.ulimit.nofile.soft=2048
wrapper.ulimit.data.soft=unlimited

wrapper.ulimit.<resource>.hard

Compatibilité :3.5.31
Éditions :Édition ProfessionnelleÉdition StandardÉdition Community
Plateformes :Windows (Non pris en charge)Mac OSXLinuxAlpine LinuxFreeBSDSolarisIBM z/Linux

Cette propriété est utilisée pour définir la limite hard de la ressource spécifiée. Elle s'applique au Wrapper et à ses processus enfants.

La valeur par défaut est héritée de la configuration de votre système.

La valeur 'UNLIMITED' peut être utilisée pour définir la limite au maximum pris en charge par le système d'exploitation. Cela nécessite toutefois que le Wrapper soit exécuté en tant qu'utilisateur root.

NOTE

Si 'unlimited' n'est pas pris en charge par le système d'exploitation pour la ressource spécifiée, il sera résolu à la valeur de la limite hard actuelle lorsque wrapper.ulimit.<resource>.strict est défini à FALSE.

Exemple :
wrapper.ulimit.nofile.hard=65536
wrapper.ulimit.data.hard=unlimited

wrapper.ulimit.<resource>.strict

Compatibilité :3.5.31
Éditions :Édition ProfessionnelleÉdition StandardÉdition Community
Plateformes :Windows (Non pris en charge)Mac OSXLinuxAlpine LinuxFreeBSDSolarisIBM z/Linux

Lorsqu'elle est définie à TRUE, la propriété indique au Wrapper de s'arrêter s'il n'est pas possible de définir la limite de la ressource spécifiée telle que définie dans la configuration.

Si la valeur est FALSE, une tentative sera faite pour ajuster les limites hard et soft aussi près que possible des valeurs configurées. Un avertissement sera affiché et le Wrapper continuera. Le mode non strict peut être utile lorsque la même configuration doit être utilisée sur plusieurs machines configurées avec des limites de ressources différentes. Le Wrapper s'arrêtera toutefois en cas de configuration incorrecte, par exemple lorsque les limites hard et soft sont toutes deux spécifiées avec une limite soft supérieure à la limite hard.

La valeur par défaut est TRUE.

Exemple :
wrapper.ulimit.nofile.strict=FALSE

wrapper.ulimit.loglevel

Compatibilité :3.5.31
Éditions :Édition ProfessionnelleÉdition StandardÉdition Community
Plateformes :Windows (Non pris en charge)Mac OSXLinuxAlpine LinuxFreeBSDSolarisIBM z/Linux

Contrôle le niveau de log auquel les limites de ressources seront enregistrées.

La valeur par défaut est DEBUG.

Exemple :
wrapper.ulimit.loglevel=STATUS