Comment le niveau de débogage (0-99) dans le fichier Tomcat server.xml affecte-t-il la vitesse?

StackOverflow https://stackoverflow.com/questions/102058

  •  01-07-2019
  •  | 
  •  

Question

Le fichier server.xml qui contrôle le démarrage du conteneur de servlets Apache Tomcat contient un attribut de débogage pour presque tous les composants principaux. L'attribut debug est plus ou moins détaillé selon le nombre que vous lui donnez, zéro étant le moins important et 99 le plus détaillé. Comment le niveau de débogage affecte-t-il la vitesse de Tomcat lors de la maintenance d'un grand nombre d'utilisateurs? Je suppose que zéro est rapide et 99 est relativement plus lent, mais est-ce vrai? Si aucune erreur n'est générée, est-ce important?

Était-ce utile?

La solution

Une journalisation poussée prend beaucoup de temps. C’est pourquoi il est si important de mettre

if (log.isDebugEnabled())
  log.debug(bla_bla_bla);

donc je dirais que définir votre serveur de production sur verbose affecterait sérieusement les performances. Je suppose que c'est un serveur de production dont vous parlez puisque vous dites qu'il doit desservir un grand nombre d'utilisateurs.

Autres conseils

La journalisation n'est pas seulement responsable de vous donner des erreurs, mais également de suivre ce qui se passe. Dans certains cas, le code ne peut pas être exécuté dans un débogueur. La consignation est votre seule option.

C’est pourquoi la sortie de la journalisation peut être extrêmement détaillée. Et je le veux vraiment dire . Je me souviens d’avoir réglé le niveau de journal de Catalina sur TRACE une fois et que j’ai fini avec un fichier journal de plusieurs mégaoctets. C'était avant que le serveur reçoive le moindre succès. C'était un énorme porc de performance. Comptable en plusieurs secondes.

Si vous n'avez pas besoin de vous connecter à Tomcat lui-même, ne l'activez pas sur aucun de ses composants. En règle générale, vous souhaiterez modifier le niveau de journalisation de Tomcat si vous suspectez un bogue dans votre configuration ou dans Tomcat lui-même.

Pour vos propres applications, mesurez le coût de la journalisation à l'aide d'un profileur ou de quelques tests de contrainte. Quels que soient vos résultats, je vous déconseille d'exécuter une application avec un paramètre de niveau de log élevé dans un environnement de production. Mon projet actuel dépose environ un mégaoctet par requête dans les paramètres TRACE, seulement trois à quatre lignes sur INFO et rien sur WARNING (si tout se passe bien :-). Je recommande pas plus que la journalisation la plus nécessaire. Votre application doit simplement signaler le démarrage, l’arrêt et l’échec et, au plus, une ligne par demande.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top