ObservKit / Planificación de capacidad / Calculadora de dimensionamiento de Elasticsearch
Utilidad de observabilidad

Calculadora de dimensionamiento de Elasticsearch

Disco por tier de datos, réplicas, searchable snapshots y cantidad de shards primarios para Elasticsearch, mostrando cada supuesto.

● Calculado localmente en tu navegador
Preajustes
Datos de entrada de capacidad
Días por tier de datos
Almacenamiento del tier cold
Los índices cold regulares conservan réplicas. Los searchable snapshots fully mounted conservan una copia local y ninguna réplica; la resiliencia viene del repositorio de snapshots. Frozen siempre se modela como snapshots partially mounted con una caché local.
Cálculo de capacidad
Capacidad de disco local aprovisionado · estimación de planificación
—
Datos utilizables (con crecimiento) —
Margen reservado (objetivo de utilización) —
Ingesta sin procesar durante la retención —
Datos primarios (sin procesar × factor de índice) —
Almacenamiento local de réplicas —
Margen de crecimiento —
Hot —
Warm —
Cold —
Frozen —
Ver el cálculo

El margen se aplica por división, no por multiplicación: para mantener los datos en el objetivo o por debajo, la capacidad aprovisionada es utilizable ÷ utilización objetivo. Con 85% eso suma ~17,6%, no 15%.

Es una estimación agregada de planificación, no una reproducción del asignador de Elasticsearch. ObservKit usa un objetivo agregado de utilización de disco de 85% como suposición de planificación conservadora. Elasticsearch aplica los watermarks de disco por nodo y el low watermark por defecto incluye además un tope de max-headroom de 200 GB. El disco frozen usa el valor por defecto de 90% de caché compartida como agregado simplificado; el max_headroom de 100 GB por nodo no puede modelarse sin dimensionar nodos. La proporción de caché frozen de 10% es una suposición de planificación de ObservKit.

Planificación de shards Estimación de planificación
Shards primarios / rollover—
Shards primarios activos—
Tamaño estimado del shard—
Shards primarios retenidos—
Total de shards en nodos de datos—
Nodos de datos necesarios por el límite de shards—
    Las réplicas están incluidas en el total de shards. Los shards del tier frozen no cuentan para el límite por nodo. El límite por defecto es de 1.000 shards no frozen por nodo de datos. Guía de tamaño de shards: 10–50 GB.
    Ingesta→Hot · —→Warm · —→Cold · —→Frozen · —→Eliminación
    Supuestos y fuentes
    • Searchable snapshots: por defecto no tienen réplicas; el repositorio de snapshots aporta la resiliencia y los shards perdidos se restauran desde él. Cold usa índices fully mounted; frozen usa índices partially mounted respaldados por una caché compartida. Fuente: Documentación de Elastic — Searchable snapshots. Los searchable snapshots requieren una suscripción Enterprise en clústeres autogestionados.
    • Tiers de datos: Documentación de Elastic — Tiers de datos.
    • Objetivo de utilización de disco planificada (85%): una suposición agregada y conservadora de planificación inspirada en los watermarks de disco de Elasticsearch, pero no igual a ellos. Elasticsearch evalúa los watermarks por nodo: el low watermark es 85% por defecto con low.max_headroom = 200 GB, el high 90% y el flood stage 95%. Como ObservKit todavía no dimensiona nodos, el resultado es una estimación de planificación, no matemática del asignador. Fuente: Documentación de Elastic — Ajustes de asignación y enrutamiento de shards a nivel de clúster.
    • Disco frozen: los nodos frozen dedicados fijan por defecto la caché compartida en 90% del disco, con shared_cache.size.max_headroom = 100 GB por nodo. ObservKit usa caché ÷ 0,9 como un agregado simplificado y conservador; el tope de headroom por nodo no se modela. La proporción de caché frozen de 10% es una suposición de planificación de ObservKit, no una recomendación oficial de Elastic. Fuente: Documentación de Elastic — Searchable snapshots.
    • El factor índice / sin procesar es 1 por defecto porque no existe una proporción universal; consulta Documentación de Elastic — Ajustes para reducir el uso de disco.
    • Dimensionamiento de shards: Documentación de Elastic — Dimensiona tus shards.
    • No se modela: cantidad de nodos y relaciones RAM:disco, backups con snapshots regulares de datos hot/warm, overhead del SO y del sistema de archivos, ni picos de merges y translog.

    Solo estimaciones de planificación. La arquitectura real de Elastic depende de la carga de consultas, los mappings, la estrategia de shards, el hardware de los tiers de datos, los searchable snapshots y los requisitos operativos.

    Ejemplo resuelto: el escenario de referencia

    Escenario de referencia los datos de entrada predeterminados de la calculadora: 250 GB/día de datos sin procesar, 90 días de retención repartidos en 7 hot / 23 warm / 60 cold (cold como índices regulares), 1 réplica, factor índice/sin procesar 1,0, 25% de crecimiento y un objetivo de utilización de disco planificada de 85%. Abre este escenario.

    De la ingesta diaria al disco aprovisionado
    PasoFórmulaResultado
    Tamaño indexado por día250 GB/day × factor 1.0250 GB/día
    Datos primarios durante la retenciónindexed/day × 90 days22,5 TB
    Asignación por tier (primarios)7 / 23 / 60 dayshot 1,8 TB · warm 5,8 TB · cold 15 TB
    Réplicas en tiers regulares× (1 primary + 1 replica)45 TB
    Crecimiento× (1 + 25%)56,3 TB
    Utilización planificada÷ 85% (suma 9,9 TB de margen)66,2 TB
    Disco aprovisionado por tierper tier usable ÷ 85%hot 5,1 TB · warm 16,9 TB · cold 44,1 TB

    El margen se aplica por división: para mantener el uso en 85% o menos, el disco aprovisionado es utilizable ÷ 0,85, lo que suma cerca de 17,6%, no 15%. Con todos los tiers regulares, factor 1,0 y una réplica, el resultado equivale a la estimación genérica de almacenamiento de logs dividida por 0,85.

    Comparación de tiers de datos

    Qué conserva cada tier y dónde
    TierModelo de almacenamiento típicoComportamiento de las réplicasDisco localRepositorio de snapshots
    HotÍndices regulares; datos más recientes, indexación y la mayoría de las búsquedasPrimarios + réplicas configuradasDataset completo × (1 + réplicas)No lo requiere el tier (los backups no se modelan)
    WarmÍndices regulares; lectura mayoritaria, menos búsquedasPrimarios + réplicas configuradasDataset completo × (1 + réplicas)No lo requiere el tier
    Cold, regularÍndices regulares en nodos más económicosPrimarios + réplicas configuradasDataset completo × (1 + réplicas)No lo requiere el tier
    Cold, searchable snapshot fully mountedSearchable snapshot, fully mountedSin réplicas por defecto; los shards perdidos se restauran desde el repositorioUna copia completaDataset completo (aporta resiliencia)
    FrozenSearchable snapshot, partially mountedSin réplicasSolo caché compartida (ObservKit asume 10% del dataset)Dataset completo

    Cold regular no es lo mismo que un searchable snapshot cold. Un índice cold regular conserva primarios y réplicas en disco local, igual que hot y warm. Un searchable snapshot fully mounted conserva una copia local y depende del repositorio de snapshots para la resiliencia. En el escenario de referencia, pasar los 60 días cold a searchable snapshots reduce el disco aprovisionado de 66,2 TB a 44,1 TB y agrega 18,8 TB en el repositorio. Los searchable snapshots requieren una suscripción Enterprise en clústeres autogestionados.

    Frozen no es un dataset completo en local. Los índices partially mounted solo conservan una caché compartida en local; cada búsqueda que no encuentra datos en la caché lee del repositorio. La proporción de caché de 10% que usa ObservKit es una suposición de planificación, no una recomendación de Elastic: dimensiónala según la parte de datos frozen que realmente consultas. La guía de dimensionamiento de tiers de datos explica cuándo vale la pena cada tier.

    Escenarios de referencia

    Escenario de referencia Cada fila la calcula el motor de arriba y se abre con sus datos de entrada ya cargados; son puntos de comparación, no layouts recomendados. Una réplica en tiers regulares, factor 1,0, 25% de crecimiento, 85% de utilización planificada.

    Almacenamiento de Elasticsearch según el layout de tiers
    EscenarioDías por tierDatos localesDisco aprovisionadoRepositorio de snapshotsEnlace
    Solo hot, 50 GB/día14 hot1,4 TB2,1 TB0 GBAbrir este escenario
    Hot + warm, 250 GB/día7 hot · 23 warm15 TB22,1 TB0 GBAbrir este escenario
    Hot + warm + cold regular, 250 GB/día7 hot · 23 warm · 60 cold45 TB66,2 TB0 GBAbrir este escenario
    Cold como searchable snapshot, 250 GB/día7 hot · 23 warm · 60 cold (fully mounted)30 TB44,1 TB18,8 TBAbrir este escenario
    Frozen, 250 GB/día durante un año7 hot · 23 warm · 335 frozen23,4 TB33,7 TB104,7 TBAbrir este escenario

    Conservar un año con 335 días en frozen necesita 33,7 TB de disco local y 104,7 TB en el repositorio. El mismo año con índices cold regulares y una réplica necesita 268,4 TB de disco local.

    Ejemplo de planificación de shards

    La guía de Elastic para el tamaño de los shards es apuntar a shards de entre 10 GB y 50 GB y mantener cada shard por debajo de 200 millones de documentos; para datos de series temporales sugiere hacer rollover con max_primary_shard_size en 50 GB. El planificador divide los datos primarios indexados de cada ventana de rollover por un tamaño de shard objetivo y redondea hacia arriba.

    Escenario de referencia, rollover diario
    PasoFórmulaResultado
    Datos primarios indexados por día250 GB/day × factor 1.0250 GB
    Datos primarios por rolloverindexed/day × 1 day250 GB
    Shards primarios por rollover, objetivo de 30 GBceil(250 ÷ 30)9
    Shards primarios en 90 díasshards per rollover × 90 rollovers810
    Lo mismo, con un objetivo de 50 GBceil(250 ÷ 50) × 90450

    Cada réplica agrega la misma cantidad de shards de réplica. Elasticsearch limita por defecto los shards no frozen a 1.000 por nodo, así que la cantidad de shards, y no solo el disco, puede fijar un mínimo de nodos. Abre el objetivo de 30 GB · Abre el objetivo de 50 GB.

    Errores comunes

    1. Agregar réplicas a los searchable snapshots. Los índices cold fully mounted no tienen réplicas por defecto. Contar una réplica para los 60 días cold da 44,1 TB de disco cold en lugar de 22,1 TB.
    2. Agregar réplicas, o copias completas, a frozen. Tratar 335 días frozen como datos cold regulares con una réplica pide 246,3 TB de disco local; los datos frozen partially mounted necesitan una caché local de 11,6 TB en este modelo.
    3. Planificar con el disco al 100%. El escenario de referencia necesita 56,3 TB de datos con crecimiento. Aprovisionar exactamente eso deja a cada nodo por encima del low watermark de 85%, donde Elasticsearch deja de asignarle shards (salvo los primarios de índices recién creados); con 90% (high) intenta mover shards a otros nodos, y con 95% (flood stage) los índices con un shard en ese nodo pasan a solo lectura. Planificar con 85% da 66,2 TB.
    4. Interpretar el objetivo de 85% como matemática del asignador. Los watermarks se evalúan por nodo, no como promedio del clúster: un nodo lleno bloquea la asignación aunque el clúster esté en 70%. En discos grandes, el low.max_headroom por defecto de 200 GB hace que el low watermark se alcance cuando quedan 200 GB libres, cerca de 98% usado en un disco de 10 TB.
    5. Asumir factor índice/sin procesar = 1. Los mappings, multi-fields, _source, códecs y LogsDB cambian el tamaño en disco. Ejemplo hipotético Con un factor de 1,3 el escenario de referencia necesita 86 TB; con 0,7, 46,3 TB. Mídelo como pri.store.size de los índices con rollover dividido entre los bytes sin procesar enviados para ellos.
    6. Demasiados shards pequeños. Ejemplo ilustrativo Con 2 GB/día, rollover diario y 90 días de retención, cada data stream acumula 90 shards primarios de unos 2 GB. Con rollover cada 15 días salen 6 shards de unos 30 GB para los mismos datos. Abre el escenario con rollover de 15 días.
    7. Presupuestar el repositorio de snapshots como disco local. En el escenario frozen, 104,7 TB viven en almacenamiento de objetos y 33,7 TB en los nodos. Comprar disco de nodos para el total del repositorio sobrecompra; olvidar el repositorio subcompra almacenamiento de objetos.

    Cómo se calcula el dimensionamiento de Elastic

    indexado/día    = GB/día sin procesar × factor índice/sin procesar
    dataset del tier = indexado/día × días del tier
    tier regular     local = dataset × (1 + réplicas)
    cold snapshot    local = dataset × 1          repositorio = dataset
    frozen           local = dataset × % de caché  repositorio = dataset
    utilizable       = local × (1 + crecimiento)
    aprovisionado    = utilizable ÷ utilización planificada (85%)      hot, warm, cold
                     = utilizable ÷ 0,90 de caché compartida           frozen
    shards/rollover  = ceil(indexado/día × días de rollover ÷ tamaño objetivo de shard)
    • Utilización planificada (85%): un supuesto agregado de planificación inspirado en los watermarks de disco por nodo, pero no igual a ellos.
    • Factor índice/sin procesar: es 1,0 por defecto porque no existe una proporción universal; ajústalo a partir de mediciones.
    • Réplicas: se aplican solo a índices regulares.
    • Searchable snapshots: sin réplicas; el repositorio contiene el dataset completo.
    • Caché frozen: 10% del dataset frozen por defecto (suposición de ObservKit); los nodos frozen dedican por defecto 90% del disco a la caché compartida.
    • Shards: un conteo derivado del tamaño y del rollover; una orientación, no una recomendación de producción.
    • No se modela: cantidad de nodos y relaciones RAM:disco, backups con snapshots regulares de datos hot/warm, overhead del SO y del sistema de archivos, ni picos de merges y translog.

    El modelo común detrás de todas las calculadoras se describe en la metodología.

    Fuentes

    Última revisión: · Relacionado: Guía de dimensionamiento de tiers de datos de Elasticsearch · Planificación de capacidad · almacenamiento genérico de logs