hlilo-website/data/miam/ateliers/001-infra-debug-synapse.md

3.1 KiB

CR-2023-03-17 | Synapse | Tedomum.net

Très courte description

Infra | Debug | Synapse - Pic d'utilisation CPUs

Courte description

À L'occasion d'une session improvisée de documentation croisée : kaiyou debug l'instance synapse de (tedomum.net) qui rencontre des pics CPU. reminec prends des notes pour engrenger du savoir sur synapse / Matrix.

Description

Salons #Synapse

#Synapse modèlise la relation entre les salons via un Graphe Orienté Acyclique (DAG)[Voir plus bas].

Celui-ci se voit distribué et répliqué sur les différents serveurs.

⚠️ De temps en temps, ce processus peut occasionner des nécessités d'opérations de maintenance.

Schéma de Graphe Orienté Acyclique

Ne boucle pas sur lui même (Ex: les noeuds ne peuvent former un cercle)

Voir Wikipedia - Graphe Orienté Acyclique

En savoir plus

Opérations de maintenance

Nettoyage des 'extremites' des salons

#Synapse peut rencontrer quelques défauts dus à la nature distribuée du DAG répliqué. Des pics de CPUs interviennent lors de la résolution d'état des salons (room). Une opération de maintenance peut être nécessaire.

Pour récupérer la liste des salons à nettoyer, executer cette requette SQL :

select room_id, count(*) c from event_forward_extremities group by room_id order by c desc limit 20;

Puis appeler l'API dédiée à cette effet

synadm DELETE 'v1/rooms/!fzfHhoTplYBEXfWOaI:matrix.org/forward_extremities'

Bug connu

#Synapse - 'Extremites' des salons qui grossissent

Status : Ouvert

Description

Le souci est toujours celui-là : https://github.com/matrix-org/synapse/issues/1760

Il y a toujours des défauts dus à la nature distribuée du DAG répliqué, et l'algo de résolution d'état pour une room qui explose en performances quand le nombre d'extrémités (occurrences du défaut si l'on veut) grandit.

Correction
  • opération de maintenance régulière : Nettoyage des extremities des salons
Détection
  • pic de CPUs

Définitions

Graphe Orienté Acyclique

English : Directed acyclic graph Grosso modo un DAG c'est un arbre dont les branches peuvent se croiser, mais qui va dans une direction globale et ne boucle pas sur lui même.

[Illustration d'un DAG Graphe Orienté Acyclique]

Exemples

Un historique git.

En savoir plus

https://fr.wikipedia.org/wiki/Graphe_orient%C3%A9_acyclique

Licenses

CC-BY-SA

Auteurices

  • kaiyou @ acides.org (Tedomum.net)
  • reminec @ acides.org (Tedomum.net)

Versions

v1.0.1

Date: 18 mars 2023 | Temps : 5min

  • Corrections mineurs sur le formatage

v1.0.0

Date : 17 mars 2023 | Temps rédaction : 1h

  • Initialisation du document & formatage