Wiki source code of Réglages Tomcat

Last modified by Aurelie Bertrand on 2024/01/09 12:02

Show last authors
1 {{ddtoc/}}
2
3 ----
4
5 = Allouer plus de mémoire à Tomcat =
6
7 == Sous Linux ==
8
9 1. Éditez le fichier suivant :
10
11 {{code language="shell"}}
12 sudo vi /etc/default/tomcat9
13 {{/code}}
14
15 (% start="2" %)
16 1. Remplacez la variable JAVA_OPTS existante par :
17
18 {{code language="shell"}}
19 JAVA_OPTS="-Djava.awt.headless=true -XX:+UseShenandoahGC -Xms6G -Xmx6G -Djava.security.egd=file:/dev/urandom -DPROP_MAX_CONCURRENT_TOTAL=5000 -DPROP_MAX_CONCURRENT_CON_PER_HOST=5000"
20 {{/code}}
21
22 (% start="3" %)
23 1. Changez le paramètre 6G en fonction de la capacité de la machine en laissant au minimum 2G pour l'OS.
24 Dans l'exemple ci-dessus, la machine dispose de 8G de RAM.
25
26 (% class="box infomessage" %)
27 (((
28 💡 Il est recommandé d'utiliser la même valeur pour Xms et Xmx.
29 )))
30
31 == Sous Windows ==
32
33 1. Allez dans le [[répertoire d’installation de Tomcat9>>doc:Digdash.deployment.configuration.advanced_system_guide.WebHome||anchor="Répertoire_Tomcat"]] puis dans le répertoire bin et lancez tomcat9w.exe.
34 1. Ouvrez l’onglet **Java **et modifiez les champs **Initial memory pool** (Xms) et **Maximum memory pool **(Xmx) en MB. Dans cet exemple, 3000 MB. Renseignez la même valeur dans les deux champs.
35 [[image:Tomcat5.png||alt="Mémoire_Tomcat"]]
36
37 (% class="box warningmessage" %)
38 (((
39 **Important **: Sur un Windows 64 bits il n'y a pas de limite autre que la mémoire physique de votre ordinateur. Si La valeur est trop haute, alors Tomcat ne démarrera pas.
40 )))
41
42 (% class="box infomessage" %)
43 (((
44 **Note pour Windows 32 bits**// //: Si vous avez une configuration 32 bits (machine/OS), ou si vous avez déployé la version 32 bits de DigDash enterpise sur votre machine 64 bits, alors vous êtes limité dans la quantité de mémoire que vous pouvez allouer à Tomcat. La limite dans ce cas est connue pour être approximativement 1,5Go. Cela dépend notamment de la fragmentation de la mémoire à cet instant. Nos tests montrent en général que nous pouvons allouer 1,4Go sur un Windows 32 bits. Pour cette raison, nous recommandons une combinaison machine/OS 64 bits.
45 )))
46
47 = Changer les ports réseau Tomcat =
48
49 Fichier modifié : **server.xml**
50
51 Si un des ports nécessaires à Tomcat est déjà utilisé par un autre processus, alors il ne se lancera pas. Il est nécessaire de vérifier la disponibilité des ports et si besoin de reconfigurer Tomcat. Par défaut les 3 ports suivants sont configurés : 8005, 8080 et 8009. Pour les modifier :
52
53 1. Ouvrez le [[répertoire d’installation de Tomcat9>>doc:Digdash.deployment.configuration.advanced_system_guide.WebHome||anchor="Répertoire_Tomcat"]] puis éditer le fichier **server.xml**
54 1. Chercher et remplacer les valeurs des ports 8005, 8080 et 8009 par des numéros de port disponibles sur le système
55
56 = Changer la durée de vie des sessions inactives (timeout) =
57
58 Fichier modifié : **web.xml** ([[répertoire d’installation de Tomcat9>>doc:Digdash.deployment.configuration.advanced_system_guide.WebHome||anchor="Répertoire_Tomcat"]])
59
60 Trouvez les lignes suivantes dans le fichier :
61
62 {{code language="xml" cssClass="notranslate"}}
63 <session-config>
64 <session-timeout>30</session-timeout>
65 </session-config>
66 {{/code}}
67
68 Changez la valeur pour modifier la durée de vie en minutes d'une session inactive (timeout). Par défaut le timeout est de 30 minutes.
69
70 = Changer le nombre maximum de requêtes simultanées =
71
72 Fichier modifié : **server.xml**
73
74 Par défaut Tomcat n’acceptera pas plus de 200 requêtes **simultanées**. Ce paramétrage peut se révéler limitant dans le cas d’un déploiement à un grand nombre d’utilisateurs (plusieurs milliers ou millions), ou lors d’un bench de performance (ex. jmeter) qui exécute des centaines ou des milliers de requêtes simultanées.
75
76 Pour augmenter cette limite, il faut ajouter un attribut **maxthreads** dans l’élément **Connector** correspondant au connecteur utilisé.
77
78 Exemple lorsque le connecteur utilisé est http (il n’y a pas d’Apache en front-end) :
79
80 {{code language="xml" cssClass="notranslate"}}
81 <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" maxthreads="400" redirectPort="8443" maxPostSize="-1" URIEncoding="UTF-8" ></Connector>
82 {{/code}}
83
84 Exemple lorsque le connecteur utilisé est AJP (il y a un Apache en front-end) :
85
86 {{code language="xml" cssClass="notranslate"}}
87 <Connector port="8009" protocol="AJP/1.3" maxthreads="400" redirectPort="8443" maxPostSize="-1" URIEncoding="UTF-8" ></Connector>
88 {{/code}}
89
90 = Activer la compression HTTP =
91
92 Fichier modifié : **server.xml**
93
94 La compression HTTP permet de diminuer la consommation de la bande passante du réseau en compressant les réponses HTTP. Par défaut cette option n’est pas activée dans Tomcat, même si tous les navigateurs modernes la supportent.
95
96 Cette option permet d’économiser parfois jusqu’à 90 % la bande passante sur certains types de fichiers : HTML, Javascript, CSS. En consommant peu de CPU sur le serveur et le client.
97
98 (% class="box errormessage" %)
99 (((
100 **Important **: Cette option ne fonctionne que si Tomcat est utilisé directement en serveur front-end via le connecteur HTTP/1.1. S’il y a un Apache httpd en front-end, alors il faudra activer l’option équivalente dans Apache httpd lui-même (voir la documentation directement sur le site Apache httpd).
101 La compression HTTP n’est pas supportée sur le connecteur AJP, ni sur aucun autre connecteur que HTTP(S)/1.1.
102 )))
103
104 Dans le fichier **server.xml** ajoutez les attributs **compression="on"** et **compressionMinSize="40000"** sur le connecteur HTTP/1.1:
105
106 Exemple :
107
108 {{code language="xml" cssClass="notranslate"}}
109 <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" maxPostSize="-1" URIEncoding="UTF-8" compression="on" compressionMinSize="40000"></Connector>
110 {{/code}}
111
112 L’attribut **compressionMinSize** définit une taille minimale de réponse (en octets) au dessous de laquelle la compression n’est pas utilisée. Il est conseillé de spécifier cet attribut à une valeur suffisante pour ne pas compresser des fichiers déjà très petits (icônes PNG…).
113
114 (% class="box infomessage" %)
115 (((
116 **Note **: Ce réglage n’a pas d’incidence si un navigateur utilisé ne supporte pas la compression HTTP. Tomcat décidera alors de ne pas compresser les réponses HTTP pour ce navigateur.
117 )))