Paramètres de performance avancés

Last modified by Aurelie Bertrand on 2025/05/14 11:32


Fichier modifié : system.xml

Exemple de syntaxe XML :

<Property key="CORE_TP_EXECSIZE" value="64"></Property>

Threads utilisés pour l'exécution des flux programmés

Modifie le nombre de « threads » utilisés pour l'exécution des flux programmés (ordonnanceur) ou sur événement.

Paramètres disponibles :

  • Nom : MAX_TP_EXECSIZE
    Valeur : entier > 0 (défaut : 16)
  • Description : Nombre de threads maximum de traitement des tâches de synchronisation.
     
  • Nom : TP_SYNC_PRIORITY
    Valeur : chaîne ("flow" ou "none") (défaut : flow)
    Description : Mode de priorité des tâches. Valeur flow : Traite la synchronisation du flux le plus tôt possible après que le cube ait été généré pour ce flux. Valeur none : le flux sera synchronisé quand il y aura de la place dans la file de threads. Ce paramètre n'est pris en compte que lorsque que le paramètre TP_PRIORITYPOOL est à true.
     
  • Nom : TP_SYNC_GROUPFLOWBYCUBE
    Valeur : booléen (défaut : false)
    Description : Change le mode de traitement des tâches en attente. Valeur false : les tâches de traitements des flux sont répartis sur tous les threads disponibles quel que soit le cube utilisé. Cela entraine un traitement en parallèle des flux au détriment des cubes, recommandé lorsqu'il y a peu de cubes mais beaucoup de flux. Valeur true : regroupe les traitements des flux d'un même cube sur un seul thread. Cela entraine un traitement en parallèle des cubes au détriment des flux, recommandé lorsqu'il y a beaucoup de cubes différents et peu de flux utilisant les même cubes. Ce paramètre n'est pris en compte que lorsque que le paramètre TP_PRIORITYPOOL est à true.

Threads utilisés pour l'exécution des flux interactifs

Modifie le nombre de « threads » utilisés pour l'exécution interactive des flux (Studio, tableau de bord, mobile, etc).

Paramètres disponibles :

  • Nom : MAX_TP_PLAYSIZE
    Valeur : entier > 0 (défaut : 16)
    Description : Nombre de threads maximum de traitement des tâches de synchronisation.
     
  • Nom : TP_PLAY_PRIORITY
    Valeur : chaine ("flow" ou "none") (défaut : flow)
    Description : Mode de priorité des tâches.
    Valeur flow : Traite la synchronisation du flux le plus tôt possible après que le cube ait été généré pour ce flux.
    Valeur none : le flux sera synchronisé quand il y aura de la place dans la file de threads. Ce paramètre n'est pris en compte que lorsque que le paramètre TP_PRIORITYPOOL est à true.
     
  • Nom : TP_PLAY_GROUPFLOWBYCUBE
    Valeur : booléen (défaut : false)
    Description : Change le mode de traitement des tâches en attente.
    Valeur false : les tâches de traitements des flux sont répartis sur tous les threads disponibles quel que soit le cube utilisé. Cela entraine un traitement en parallèle des flux au détriment des cubes, recommandé lorsqu'il y a peu de cubes mais beaucoup de flux.
    Valeur true : regroupe les traitements des flux d'un même cube sur un seul thread. Cela entraine un traitement en parallèle des cubes au détriment des flux, recommandé lorsqu'il y a beaucoup de cubes différents et peu de flux utilisant les même cubes. Ce paramètre n'est pris en compte que lorsque que le paramètre TP_PRIORITYPOOL est à true.

Délais de suppression des cubes en mémoire

Modifie la manière dont le Cube Manager supprime les cubes inutilisés en mémoire.

Les paramètres suivants modifient la manière dont les cubes non utilisés depuis un certain temps sont supprimés, même si la session est toujours active.

Paramètres disponibles :

  • Nom : CUBE_TIMEOUT_INTERACTIVE
    Valeur : minutes > 0 (défaut : 10 minutes)
    Description : Durée de la période d'inactivité pour un cube chargé en mode interactif (navigation du cube sur le serveur)
     
  • Nom : CUBE_TIMEOUT_SYNC
    Valeur : minutes > 0 (défaut : 4 minutes)
    Description : Durée de la période d'inactivité pour un cube chargé en mode programmé (génération d'un flux programmé)
     
  • Nom : CUBE_TIMEOUT_PERIOD
    Valeur : minutes > 0 (défaut : 2 minutes)
    Description : Intervalle de vérification de l'inactivité des cubes, devrait être au moins CUBE_TIMEOUT_SYNC / 2

Performance des cubes de données

Ces paramètres affecteront le traitement interactif des cubes de données (aplatissement en cubes résultats pendant l'affichage). Ces paramètres n'affectent pas la génération des cubes de données.

Paramètres disponibles :

  • Nom : CUBEPART_MAXSIZEMB
    Valeur : méga-octets > 0 (défaut : 100 Mo)
    Description : Taille d'une part de cube en méga-octets. Une part de cube est une partie du cube de données qui peut être traitée (aplatie) en parallèle ou distribuée sur d'autres serveur DigDash Enterprise en mode cluster (voir chapitre "Utilisation de plusieurs serveurs en mode cluster" dans ce document).
     
  • Nom : TP_MCUBESIZE
    Valeur : threads > 0 (défaut : 64 threads)
    Description : Taille de la file de threads utilisés pour le traitement en parallèle des parts de cube. Les gros cubes (ex: plusieurs millions/milliards de lignes) sont traités en parallèle par le serveur, et/ou par d'autres serveurs (en mode cluster). Ce paramètre est le nombre d'unités parallèle de traitement (thread) sur une machine. Chaque part de cube occupe une unité de la file le temps de son traitement, si la file est pleine les unités supplémentaires sont mises en attente.
     
  • Nom : MCUBE_ROWS_PER_THREAD
    Valeur : lignes > 0 (défaut : 100000)
    Description : Limite du nombre de lignes d'un cube de données au delà de laquelle le serveur DigDash Enterprise activera le traitement parallèle des parts du cube (s'il y a plus d'une part pour ce cube). En dessous de cette limite, le traitement du cube n'est pas parallélisé mais séquentiel.

Taille des cubes de données

Les paramètres suivants servent à limiter la taille des cubes lors de leur génération ou de leur chargement.

Paramètres disponibles :

  • Nom : RESULTCUBE_MAXSIZE / RESULTCUBEPART_MAXSIZE
    Valeur : lignes > 0 (défaut : -1, désactivé)
    Description : Nombre de lignes maximum du cube intermédiaire, respectivement d'une part de cube intermédiaire. Cela permet d'éviter la génération d'un cube trop gros pour la mémoire. Si la limite est dépassée, un message d'erreur s'affiche (Trop de lignes).
    ❗Ces paramètres imposent une limite lors de la génération du cube de résultats. Ainsi, même si l'on effectue une opération telle qu'un "Top 3", il est possible de dépasser cette limite (et de provoquer une exception), car l'ensemble du jeu de données est construit pour extraire ce "Top 3".
     
  • Nom : PROP_RESULTCUBE_MAXSIZE_FOR_BROWSER
    Valeur : valeurs > 0 (défaut : -1, désactivé)
    Description : Nombre de valeurs maximum contenues dans le cube résultat. Cela permet de protéger le navigateur contre le téléchargement d'un cube résultat volumineux (JSON). Le cube résultat est généré mais s'il contient plus de valeurs que la limite définie, la génération JSON échoue et un message d'erreur s'affiche.

💡 Le nombre de valeurs n'est pas le même que le nombre de lignes d'un tableau. Il y a généralement une valeur par mesure et par intersection d'axe. Par exemple, si vous avez un tableau de 1 000 lignes et 4 mesures, le cube résultat peut contenir jusqu'à 4 000 valeurs (les mesures masquées et les mesures d'objectif sont également comptabilisées). Les valeurs vides (inexistantes) ne sont pas comptabilisées. Par conséquent, si votre tableau a beaucoup de valeurs vides, vous risquez d'avoir moins de valeurs pour le même nombre de lignes.

  • Nom : PROP_FREEMEM_MINRATIO_LOAD_CUBE
    Valeur : nombre décimal (défaut : -1, désactivé)
    Description : La mémoire libre doit être supérieure à ce nombre multiplié par la taille du cube pour que le cube soit chargé.

Autres paramètres de performance

Les paramètres suivants servent à analyser ou optimiser les performances du système.

Paramètres disponibles :

  • Nom : LOW_MEMORY_THRESHOLD
    Valeur : pourcentage > 0 (défaut : 10%)
    Description : C’est le seuil en pourcentage de mémoire libre restante en dessous duquel le système émettra une alerte de mémoire basse. Cette alerte est visible dans la page d’état du serveur pendant 24 heures. Elle est aussi enregistrée dans la base de données DDAudit si le service d’audit système est démarré.
    Enfin, un événement DigDash est aussi déclenché lorsque le seuil est atteint : SYSCHECK_LOWMEM. Un exemple d’utilisation de cet événement est donné dans le document de déploiement du module DDAudit.
     
  • Nom : PROP_CUBE_GEN_OOM_PREDICTION_THRESHOLD 
    Valeur : pourcentage > 0 (défaut : 10%)
    Description : C’est le seuil en pourcentage de mémoire libre restante en dessous duquel le système peut décider d'interrompre la génération d'un cube, ceci afin d'éviter une situation de mémoire insuffisante (OOM : Out Of Memory)

    Par exemple, dans le cas où : PROP_CUBE_GEN_OOM_PREDICTION_THRESHOLD = 10
    alors si la mémoire libre est inférieure à 10 % de la mémoire totale pendant au moins une minute, la génération d'un cube en cours à ce moment-là est interrompue (échec) afin d'essayer d'éviter une situation de mémoire insuffisante qui pourrait être fatale au serveur (un redémarrage peut s'avérer nécessaire). Si cela ne suffit pas pour que la mémoire libre dépasse le seuil, la génération d'un autre cube est interrompue, et ainsi de suite.

  • Nom : TP_PRIORITYPOOL
    Valeur : booléen (défaut : true)
    Description : Utilise un pool de threads de rafraîchissements avec gestion de priorité pour les rafraîchissements de flux et cubes. Voir paramètres TP_PLAY_GROUPFLOWBYCUBE, TP_SYNC_GROUPFLOWBYCUBE, TP_PLAY_GROUPFLOWBYCUBE, TP_SYNC_GROUPFLOWBYCUBE
     
  • Nom : PROP_JS_OPTIM_LEVEL
    Valeur : niveau d'optimisation de -1 à 9 (défaut : -1)
    Description : Permet de définir le niveau d'optimisation utilisé lors de la compilation de javascript. -1 désactive la compilation, 0 désactive seulement l'optimisation. Le niveau maximal d'optimisation est 9, cependant il est possible que l'optimisation provoque des erreurs lors de la compilation.
     
  • NomPROP_BUILDER_MTHREAD_POOLSIZE
    Valeur : nombre entier (si non renseignée, la valeur prend celle du nombre de threads de la machine)
    Description : Permet de définir le nombre maximum de threads alloués pour la génération d'une fabrique HTML. La valeur choisie dépend du nombre de threads de la machine et de ce que vous souhaitez faire. L'utilisation de plusieurs threads permet de générer les différents flux de la fabrique HTML en parallèle afin d'optimiser le temps de génération. Cependant, il est nécessaire de les limiter afin d'éviter un ralentissement global.