wrapper.javaio.buffer_size

Compatibilité :3.5.21
Éditions :Édition ProfessionnelleÉdition StandardÉdition Community
Plateformes :WindowsMac OSX (Non pris en charge)Linux (Non pris en charge)Alpine Linux (Non pris en charge)FreeBSD (Non pris en charge)Solaris (Non pris en charge)IBM z/Linux (Non pris en charge)

Cette propriété contrôle la taille du tampon utilisé par le tube (pipe) entre les processus JVM et Wrapper. Lorsque la JVM écrit la sortie console, le thread qui tente d'écrire se bloquera si le tube devient plein. Cela peut entraîner une dégradation des performances dans les applications générant beaucoup de sorties.

Toutes les versions du Wrapper antérieures à 3.5.21 utilisaient la taille de tampon par défaut du système, qui semble être d'environ 4 Ko. Cela convenait à la plupart des applications ; cependant, les applications avec des lignes de sortie console très longues, ou de très grandes quantités de sorties, subissaient une certaine dégradation des performances causée par le blocage.

À partir de la version 3.5.21 du Wrapper, la taille de tampon par défaut a été définie à 65536 (64 Ko). La taille du tampon peut être n'importe quelle valeur comprise entre 1024 (1 Ko) et 10485760 (10 Mo) ; une valeur de « 0 » (zéro) est également valide et indiquera au Wrapper d'utiliser à nouveau la taille par défaut du système. La valeur par défaut convient à la plupart des applications et a été choisie pour éviter de gaspiller trop de mémoire lorsqu'elle n'est pas nécessaire.

Exemple :
wrapper.javaio.buffer_size=1048576

Notez qu'il y a beaucoup de surcharge de la part du système pour afficher la sortie des journaux console. C'est particulièrement vrai sous Windows. Si votre application rencontre des problèmes de performances lors de la journalisation de grandes quantités de sorties console, nous recommandons soit de réduire la sortie des journaux, soit de désactiver la sortie des journaux console en définissant la propriété wrapper.console.loglevel à STATUS.

Une autre façon d'améliorer les performances consiste à augmenter l'intervalle auquel la sortie console mise en tampon est traitée en demandant au Wrapper d'utiliser un thread dédié. Consultez la propriété wrapper.javaio.use_thread pour plus d'informations.

AVERTISSEMENT

Toute la sortie Java est envoyée via ses propres tubes stdout/stderr vers le processus Wrapper. Si le Wrapper est lent à écrire vers la console ou le fichier, cela ralentira également la capacité à lire la sortie provenant de Java. Si le tube devient plein parce que le Wrapper n'a pas tout lu, l'extrémité Java du tube se bloquera en tentant d'écrire sa sortie. Cela peut avoir un impact sur les performances de votre application, et il est important d'en être conscient. Toute application rencontrera ce problème, y compris un processus Java autonome.

Vous pouvez atténuer ce problème en activant la propriété wrapper.console.direct, en augmentant la taille du tampon du tube avec la propriété wrapper.javaio.buffer_size. Il est également possible de désactiver complètement la sortie console à l'aide de la propriété wrapper.console.loglevel.

NOTE

La possibilité de définir la taille du tampon du tube n'est actuellement possible que sous Windows. Les plates-formes UNIX gèrent les tailles de tubes un peu différemment. Elles peuvent être définies à l'aide de ulimit.

Référence : Console