RousselTMLEARNING

Observabilité

Performance et capacity planning Elasticsearch : shards, heap, indexation et benchmarks

Dimensionner et optimiser Elasticsearch : taille et nombre de shards, heap JVM, caches, réglages d'indexation (refresh, bulk, répliques), requêtes performantes, capacity planning et benchmarks avec Rally.

1. Shards #

Le premier facteur.

Dimensionnement #

Taille recommandée des shards
  • Viser 10 à 50 Go par shard primaire pour les logs ; le rollover par max_primary_shard_size le garantit.
  • Trop de petits shards : cluster state lourd, mémoire et requêtes gaspillées. Limite par défaut : 1 000 shards par nœud (cluster.max_shards_per_node).
  • Nombre de primaires d'un index à fort débit : de l'ordre du nombre de nœuds data hot, pour répartir l'écriture.

2. Mémoire et indexation #

Les réglages qui comptent.

Réglages #

RéglageRecommandation
Heap JVM≤ 50 % de la RAM (le reste sert au cache du système de fichiers, essentiel à Lucene) et sous ~31 Go
refresh_interval30 s ou plus pour les logs (1 s par défaut) : moins de segments, indexation plus rapide
Chargement initialnumber_of_replicas: 0 et refresh_interval: -1, puis rétablir
Bulk5 à 15 Mo par requête, plusieurs clients en parallèle, surveiller les rejets
ChampsPas de champ text inutile ; index: false sur les champs jamais recherchés
DisquesSSD locaux pour le tier hot

3. Mesurer #

Capacity planning.

Benchmark #

pip install esrally
esrally race --track=http_logs --target-hosts=es01:9200 --pipeline=benchmark-only \
  --client-options="use_ssl:true,verify_certs:false,basic_auth_user:'elastic',basic_auth_password:'$ES_PASSWORD'"
  1. Mesurer le débit d'indexation et la latence de recherche sur un nœud avec vos données (ou une piste Rally proche).
  2. En déduire le nombre de nœuds hot pour le débit cible, avec une marge de 30 %.
  3. Calculer le stockage : volume par jour × (1 + répliques) × rétention par tier × facteur d'index (souvent 1,1 à 1,5 par rapport aux données brutes).
  4. Revalider à chaque changement majeur de version ou de mapping.
Erreur Courante : Ne lancez jamais un benchmark Rally sur un cluster de production : il crée ses propres index et sature le cluster.

Articles liés

Transforms et enrich : résumer et enrichir les données dans Elasticsearch

Créer des index centrés sur les entités avec les transforms pivot et latest, et enrichir les documents à l'in…

OpenTelemetry et Elasticsearch : compatibilité et architecture

Envoyer de l'OpenTelemetry vers Elasticsearch : Collector et exportateur elasticsearch, endpoint OTLP géré, A…

Ingérer des logs OpenTelemetry dans Elasticsearch

Collecter et structurer des logs avec le Collector OpenTelemetry (receiver filelog, opérateurs, processeur tr…

Pour aller plus loin

Soutenir

♥ SOUTENIR

Soutenez RousselTM Learning

Les formations, articles, TP et attestations restent gratuits et sans publicité intrusive. Une contribution libre, du montant de votre choix, finance l’hébergement, les environnements de TP et l’écriture de nouveaux contenus.

Contribuer avec PayPal Montant libre · carte bancaire ou compte PayPalEn savoir plus
QR code PayPal
Ou scannez ce QR code avec votre téléphone

Merci, chaque contribution compte !