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.
Ne boucle pas sur lui même (Ex: les noeuds ne peuvent former un cercle)
Voir Wikipedia - Graphe Orienté Acyclique
En savoir plus
- #Synapse Room DAG Concept (https://github.com/matrix-org/synapse/blob/develop/docs/development/room-dag-concepts.md)
- #Matrix - Rooms (https://spec.matrix.org/unstable/rooms/)
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