Thanos compact qui explose le CPU et la RAM

jean25 22/05/2024
RÉSOLU
jean25
Auteur Actif
Avatar de jean25
jean25
Auteur Actif

Hello les cost killers ! on a un Thanos compact qui tourne et franchement il est en train de tuer nos serveurs de compactions. dès qu'il commence à bosser sur des vieux blocs (plusieurs mois) le cpu monte à 100% et la ram prend tout. on est sur la 0.29.0 de thanos. des idées pour optimiser ça ?

22/05/2024 à 19:26

17 commentaires

gautier-olivier
Membre Rédacteur
Avatar de gautier-olivier
gautier-olivier
Membre Rédacteur

Salut ! C'est classique ça. C'est quoi la taille moyenne de tes blocs au niveau raw data ? Et tu as combien de séries par block ?

23/05/2024 à 18:39
david-camus
Membre Actif
Avatar de david-camus
david-camus
Membre Actif

T'as regardé tes options de compaction comme compaction.concurrency et compaction.retention.resolution-raw ? Des fois baisser la concu aide un peu.

Modifié le 23/05/2026 à 16:20
jean25
Auteur Actif
Avatar de jean25
jean25
Auteur Actif

Les blocs raw sont énormes, genre 2-3Go par bloc pour des périodes d'une journée. Beaucoup de séries actives. compaction.concurrency est à 2. retention.resolution-raw est à 2 ans.

Modifié le 23/05/2026 à 16:20
timothee05
Membre
Avatar de timothee05
timothee05
Membre

question bête mais compaction.consistency-delay est à combien ? si c'est trop bas ça peut tenter de compacter des blocs encore en écriture ou pas complètement uploadés.

Modifié le 23/05/2026 à 16:20
gautier-olivier
Membre Rédacteur
Avatar de gautier-olivier
gautier-olivier
Membre Rédacteur

Pour 2-3Go par bloc et autant de séries, 2 de concurrency c'est ptete déjà trop pour des machines modestes. Tu pourrais essayer de le mettre à 1, ou de passer sur des instances plus grosses avec plus de CPU et RAM.

27/05/2024 à 06:54
david-camus
Membre Actif
Avatar de david-camus
david-camus
Membre Actif

La downsampling est activée ? Si oui, à quelles résolutions ? Et est-ce que les problèmes sont plus sur le raw ou sur les résolutions downsamplées ?

28/05/2024 à 03:50
jean25
Auteur Actif
Avatar de jean25
jean25
Auteur Actif

Oui downsampling activée pour 5m et 1h. Le problème est clairement sur le raw, quand il aggrège des blocs d'une journée en blocs d'une semaine/mois. consistency-delay est à 30m, la valeur par défaut.

Modifié le 23/05/2026 à 16:20
luce76
Membre Actif
Avatar de luce76
luce76
Membre Actif

vérifie si tu n'as pas des blocs corrompus dans ton bucket s3. thanos tools bucket verify peut te donner des indices. un bloc corrompu peut faire planter le compacteur ou le faire ramer indéfiniment.

Modifié le 23/05/2026 à 16:20
jean25
Auteur Actif
Avatar de jean25
jean25
Auteur Actif

J'ai lancé un bucket verify hier, rien trouvé. Tout est clean côté S3. Les logs du compacteur montrent juste qu'il bosse dur mais il met des heures pour un seul bloc.

Modifié le 23/05/2026 à 16:20
timothee05
Membre
Avatar de timothee05
timothee05
Membre

C'est ptete le nombre de fichiers qu'il doit manipuler. Essaye d'ajuster compaction.block-sync-concurrency. Ça gère le nombre de blocs qui sont téléchargés/uploadés simultanément de S3.

Modifié le 23/05/2026 à 16:20
gautier-olivier
Membre Rédacteur
Avatar de gautier-olivier
gautier-olivier
Membre Rédacteur

Autre approche : as-tu pensé à séparer les compacteurs ? Un pour le raw, qui tourne sur une grosse machine dédiée, et un ou plusieurs pour les résolutions downsamplées. Ça isole le problème.

01/06/2024 à 14:35
david-camus
Membre Actif
Avatar de david-camus
david-camus
Membre Actif

Est-ce que ton S3 bucket n'est pas throttlé ? Regarde les métriques S3 Request Metrics pour voir si tu as des erreurs ou des latences élevées sur les GET/PUT.

02/06/2024 à 13:48
jean25
Auteur Actif
Avatar de jean25
jean25
Auteur Actif

S3 est niquel on a pas de throttling. La latence est bonne. Je vais essayer de baisser block-sync-concurrency et compaction.concurrency à 1 pour voir.

Modifié le 23/05/2026 à 16:20
luce76
Membre Actif
Avatar de luce76
luce76
Membre Actif

Si tu as beaucoup de séries, ça peut aussi venir de la cardinalité élevée de certaines métriques. Le compacteur doit manipuler beaucoup plus de données. Une purge de métriques inutiles ou avec trop de labels pourrait aider.

04/06/2024 à 05:38
jean25
Auteur Actif
Avatar de jean25
jean25
Auteur Actif

On a déjà fait le ménage sur la cardinalité en amont. En baissant la concu et en donnant plus de RAM/CPU au compacteur ça aide un peu mais c'est pas encore l'idéal. Il reste quand même très gourmand.

05/06/2024 à 05:08
gautier-olivier
Membre Rédacteur
Avatar de gautier-olivier
gautier-olivier
Membre Rédacteur

Pour les très vieux blocs tu pourrais même avoir une job de compacteur qui tourne moins souvent, genre une fois par mois, sur une instance éphémère super beefy juste pour ça. C'est du FinOps mais ça aide.

06/06/2024 à 01:46
jean25
Auteur Actif
Avatar de jean25
jean25
Auteur Actif

L'idée du job éphémère est pas mal pour les vieux trucs. Avec la baisse de concu et une plus grosse machine ça stabilise les choses. Le coût est plus élevé mais au moins ça finit la compaction. Thx à tous pour les idées !

06/06/2024 à 20:54

Laisser une réponse

Vous devez être connecté pour poster un message !

Rejoindre la communauté

Recevoir les derniers articles gratuitement en créant un compte !

S'inscrire