Optimiser Tomcat 8

Si comme moi vous avez installé Tomcat sur la première version du Raspberry Pi, vous avez du remarquer qu’il était assez lent à démarrer. J’ai pu constater un démarrage de quasiment 9 minutes sans compter l’application que j’ai déployé…

En regardant les logs de démarrage, Tomcat m’indique que des librairies ne contenant pas de TLD ont été scannées :

« At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. »

Pour augmenter le niveau de log, il suffit de modifier le fichier logging.properties qui se trouve dans « /etc/tomcat8/ » et y ajouter ou décommenter cette ligne :

org.apache.jasper.servlet.TldScanner.level = FINE

Redémarrer alors Tomcat :

sudo service tomcat8 restart

Et cette fois ci, vous devriez avoir dans les logs, la liste des jars à ignorer. Ces fichiers sont à ajouter au fichier catalina.properties dans la propriété:

tomcat.util.scan.StandardJarScanFilter.jarsToSkip

Il est peut être plus efficace de se faire un petit script pour générer la liste de ces jars à partir du fichier de log.

Redémarrer Tomcat à nouveau et vous pourrez constater qu’il est beaucoup plus rapide à démarrer.

Au final, je suis donc passé de 9 minutes de démarrage à seulement 1min30… 🙂