17 commentaires
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 ?
T'as regardé tes options de compaction comme compaction.concurrency et compaction.retention.resolution-raw ? Des fois baisser la concu aide un peu.
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.
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.
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 ?
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.
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.
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.
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.
Laisser une réponse
Vous devez être connecté pour poster un message !
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 ?