AXOPEN

Planisware – ERREUR : Rejecting request because average load is too high

Introduction

Lorsque l’on soumet une application Planisware à une charge trop importante il peut arriver que l’erreur du type suivant apparaisse dans les fichiers de log des Intranet Serveurs :

Rejecting request because average load is too high (6.6875d0 > 5.0)

Exemple :

[04/10/2013 14:54:31.792] - USER_DEV - 10.196.21.21 - 20 - Rejecting request because average load is too high (6.6875d0 > 5.0)

Explications

Comme l’indique le message cette erreur apparaît lorsque la charge CPU (calculée ici en nombre de transactions simultanées) est supérieure à la charge moyenne autorisée. Dans le message d’erreur pris en exemple la charge de 6 transactions simultanées est supérieure à 5 (nombre moyen maximum de transactions simultanées autorisé).

Attention il ne s’agit pas spécifiquement d’un nombre d’utilisateurs trop important mais d’un nombre de transactions simultanées trop important.

Le système analyse la moyenne des transactions actives sur l’Intranet Serveur toutes les 20 secondes par paquet de 5 secondes. C’est à dire qu’on additionne le nombre de transactions actives par tranche de 5 secondes, et au bout de 20 secondes on fait une moyenne ramenée sur 5 secondes (donc on divise par 4). Si cette moyenne est supérieure à 5 alors on n’accepte plus de nouvelles transactions.

Voici un schéma expliquant le fonctionnement de ce mécanisme :

  1. Dans les premières 20 secondes la charge moyenne est de 4.
  2. Toute transaction arrivant entre t=20s et t=40s sera acceptée même si visiblement la charge réelle instantannée dépasse 5.
  3. Entre t=40s et t=60s aucune nouvelle transaction ne sera acceptée car la charge moyenne de la période précédente est maintenant passée à 6,5.

On ne raisonne donc pas sur un nombre de transaction simultanées maximum à tout instant mais en moyenne sur la période qui vient de s’écouler. Ainsi, il est possible d’avoir un pic de 50 transactions simultanées à un instant ‘t’, mais c’est seulement à ‘t+20 secondes’ que les nouvelles transactions seront bloquées en attendant que la charge de transaction redescende sous la limite (par défaut fixé à 5 transactions).

Impacts sur les utilisateurs

En général côté utilisateur toute nouvelle action (connexion ou navigation dans l’application) pourra engendrer l’affichage d’un message d’erreur indiquant « Server Busy ». L’utilisateur doit alors attendre que les traitements en cours s’achèvent pour que la charge baisse en dessous du seuil pour pouvoir poursuivre.

Prise en compte dans la supervision

Comme tout autre message d’erreur il peut être utile de surveiller l’apparition du message d’erreur « Rejecting request because average load is too high » dans les fichiers de logs des Intranet Servers Planisware. En effet la remontée de ce message peut traduire une saturation temporaire d’un Intranet Server dont il convient de déterminer l’origine (un reporting particulièrement gourmand, un nombre d’utilisateur trop important, …). Les solutions à étudier varieront en fonction de la cause de la saturation rencontrée.

Pistes d’actions correctives

Il est nécessaire de superviser la fréquence d’apparition de cette erreur pour envisager ensuite des actions correctives. En effet en fonction de cette fréquence les actions correctives pourront varier.

Si la fréquence d’apparition de cette erreur est importante (surcharge fréquente des IS) :

  • Augmenter le nombre d’Intranet Serveurs (IS) pour diminuer le nombre d’utilisateurs connectés sur chacun des IS.

Si la fréquence d’apparition de cette erreur est faible (surcharge ponctuelle des IS) :

  1. Etudier les logs (ou W7_LOGS) pour identifier le/les scénarios générant cette forte charge (prise de référence, affichage de reportings complexes, …).
  2. En fonction de la cause des saturations constatées on pourra alors travailler sur : la conception ou l’optimisation de la fonctionnalité qui provoque la surcharge, mise en place de bonnes pratiques métier, l’activation des forks (pour que les traitements se fassent en parallèle des Intranet Server), le passage en batch, le passage en batch intranet…

Paramètre contrôlant le nombre de processus simultanés admissibles

Comme la plupart des paramètres techniques Planisware contrôlant la performance celui concernant le nombre de processus simultanés autorisé est accessible en client lourd dans la listes de « Autres paramètres » sous la rubrique « Intranet Server ». Il s’agit du paramètre suivant :

  • Identifiant : *MAX-NUMBER-OF-PROCESSED-TRANSACTIONS*
  • Descriptif : Nombre maximum de transactions traitées simultanément sur le serveur.
  • Note : Ce paramètre permet de limiter le nombre de transactions traitées sur le serveur, si le nombre de transactions dépasse cette limite, les transactions sont mises en attente de façon à ne pas saturer le serveur.

01_MAX_TRANSACTION

Cependant, dans les faits, l’intérêt de la modification d’un tel paramètre semble limité.