Comment faire en sorte que Tomcat soit automatiquement supprimé de nginx en amont avant GC pour éviter l'expiration du délai ?
为情所困
为情所困 2017-05-16 17:21:13
0
1
647

Tomcat exécutera fullgc de temps en temps. Si nginx envoie une requête à ce moment-là, la requête expirera.

Une solution consiste à définir un délai d'attente plus court du côté de nginx. S'il n'y a pas de réponse, changez de machine pour renvoyer la demande. Cependant, le problème est que cette demande est un effet secondaire et ne peut pas se reproduire.

Je voudrais demander s'il existe un mécanisme par lequel nginx supprime automatiquement Tomcat avant gc, puis le rajoute automatiquement une fois gc terminé ?

En bref, c'est pour éviter l'impact du timeout causé par Tomcat gc~

PS :

L'amont de nginx est configuré avec plusieurs tomcats Tant qu'un gc se produit sur une machine, toutes les requêtes tombant sur cette machine expireront.

.
为情所困
为情所困

répondre à tous(1)
淡淡烟草味

Tomcat dispose d'un écouteur pour éviter les débordements de mémoire :

org.apache.catalina.core.JreMemoryLeakPreventionListener

Je soupçonne que cela est dû à l'ajustement de System.gc(), et ce GC utilise peut-être la méthode stop the world, ce qui signifie qu'il n'est pas simultané. Vous pouvez essayer les deux options suivantes :

1.-XX:+ExplicitGCInvokesConcurrent GC
2 Désactivez l'écouteur ou désactivez les appels directs depuis le niveau JVM -XX:+DisableExplicitGC

.

Ensuite, observez pendant un moment.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal