2017-05-22 3 views
0

Nous avons un système où nous avons deux openams derrière un équilibreur de charge apache httpd. La charge semble être équilibrée de manière uniforme en regardant les journaux, les deux openams ont environ 35k demandes dans un laps de temps. Bien que 1 openam a envoyé environ 100k demandes à l'autre dans le même laps de temps et seulement 93k retour.502 erreur de proxy entre l'équilibreur de charge et openam

En termes de OpenAM attributs que nous avons les éléments suivants

  • persistance de session et le basculement HA Activé: true
  • réduit Crosstalk Activé: true
  • session Déconnexion/Destroy Activé: Désactivé
  • Reduced Délai de purge de diaphonie: 1

Nous avons remarqué qu'un OpenAM utilise environ 3 ti mes la quantité de RAM que l'autre (4.5gb comparé à 1.5gb). L'équilibreur de charge signale 502 erreurs de proxy pour l'OpenAM qui utilise le plus de RAM et reçoit plus de demandes de l'autre. Ceux-ci se produisent environ toutes les 20 ou 30 minutes.

Le délai d'attente de proxy de l'équilibreur httpd est laissé à défaut, ce qui est, selon moi, de 30 secondes. J'ai surveillé le nombre de connexions que chaque OpenAM a et ils semblent être les mêmes, environ 30.

Les machines ont beaucoup de RAM disponible et nous n'avons pas limité la quantité de tas que Tomcat utilisera. OpenAM est déployé dans le conteneur tomcat8 et exécute java8.

Quelqu'un peut-il penser à une raison quelconque pour laquelle 1 OpenAM aurait besoin de 3 fois plus de RAM et aussi de temporisation lorsque l'équilibreur de charge essaie de se connecter? Tous aident à accueillir.

Répondre

0

Le mode réduit de diaphonie dans les versions autour de 13.0.0 ne fonctionnait pas toujours aussi bien qu'il aurait dû, donc une suggestion serait de désactiver cela.

Il est difficile de dire pourquoi un certain noeud consomme plus de RAM, vous devriez envisager d'exécuter jmap contre le processus lourd pour tenter de déterminer si vous avez affaire à une fuite de mémoire ou autre chose.