HCL Commerce Version 9.1.13.0 or later

Botones de ajuste

Elasticsearch cuenta con varios puntos de configuración que pueden cambiarse para obtener un rendimiento óptimo y asignar recursos. A continuación se muestran algunos botones de ajuste básicos que conviene tener en cuenta.

  • Tamaño del almacenamiento dinámico
    El tamaño del almacenamiento dinámico es uno de los parámetros de ajuste más importantes de Elasticsearch. Determina la cantidad de memoria asignada a la JVM de Elasticsearch y afecta a varias operaciones, entre las que se incluyen el almacenamiento en la memoria caché, la indexación y la búsqueda.
    Note: Se recomienda asignar alrededor 50%de la memoria disponible al almacenamiento dinámico, y hasta un máximo de 30 GB. Elasticsearch utiliza una memoria nativa para varias memorias caché y almacenamientos intermedios en comunicaciones dentro de y entre Pods.
  • Grupos de subprocesos
    Elasticsearch utiliza varios grupos de subprocesos para realizar distintas operaciones, como la indexación, la búsqueda y la fusión. Puede ajustar los valores de los grupos de subprocesos para controlar el número de subprocesos asignados para cada tipo de operación y para establecer el tamaño de la cola para las solicitudes pendientes. Esto puede ayudar a equilibrar la asignación de recursos según su carga de trabajo específica.

    Para obtener más información, consulte Grupos de subprocesos.

  • Interruptores de circuito
    Los interruptores de circuito protegen Elasticsearch contra el uso excesivo de la memoria o el consumo excesivo de espacio del disco. Puede configurar los valores del interruptor de circuito para controlar la manera en que Elasticsearch gestiona las limitaciones de los recursos y para evitar errores causados por la falta de memoria o de espacio del disco.

    Para obtener más información, consulte Configuración del interruptor de circuito.

  • Tamaño de memoria caché

    Elasticsearch utiliza varias memorias caché, como los datos de campo y la memoria caché de consulta, para mejorar el rendimiento de la búsqueda. Puede ajustar los valores del tamaño de la memoria caché para optimizar el uso de la memoria según suspatrones de consulta y el tamaño de los datos.

  • Memoria caché de datos de campo
    La memoria caché de datos de campo de Elasticsearch es una memoria caché basada en memoria que almacena los valores de campo de los documentos indexados en un formato comprimido y optimizado. Acelera la ejecución de consultas cargando previamente los valores de campo a los que se accede con frecuencia en la memoria. Al almacenar en la memoria caché datos de campo, Elasticsearch evita cargar datos desde un disco para cada consulta, lo que mejora el rendimiento. Se trata de una característica de optimización crucial que puede mejorar el rendimiento de la búsqueda, especialmente para agregaciones, clasificaciones y operaciones de script.

    Para obtener más información, consulte Configuración de memoria caché de datos de campo.

  • Interruptor de circuito de carga de datos de campo
    El interruptor de circuito de carga de datos de campo protege contra el uso excesivo de memoria mediante memorias caché de datos de campo. Puede configurar el valor indices.breaker.fielddata.limit para controlar la memoria asignada para las memorias caché de datos de campo y evitar errores provocados por la falta de memoria.

    Para obtener más información, consulte Interruptor de circuito de datos de campo.

  • Almacenamiento en memoria caché de consultas
    Elasticsearch proporciona soporte al almacenamiento en memoria caché de consultas, que puede mejorar el rendimiento de las consultas al almacenar en la memoria caché los resultados de las consultas que se ejecutan con frecuencia. Para optimizar el rendimiento, puede habilitar el almacenamiento en memoria caché de consultas y ajustar los valores de la memoria caché, como el tamaño de la memoria caché y su caducidad.

    Para obtener más información, consulte Valores de la memoria caché de consulta de nodos.

  • Recursos de hardware
    El rendimiento de Elasticsearch está fuertemente influenciado por los recursos de hardware disponibles. Considere la posibilidad de ajustar la configuración de hardware, como la memoria de la CPU, la E/S de disco y los valores de la red, para que coincida con los requisitos de su carga de trabajo y optimice el rendimiento.
  • Descriptores de archivos y límites de proceso
    Elasticsearch es una aplicación que utiliza muchos recursos y requiere disponer de suficientes descriptores de archivos y límites de procesos para funcionar correctamente. Puede aumentar el número máximo de descriptores de archivos abiertos y ajustar los límites de los procesos para adaptarlos a las necesidades del clúster de Elasticsearch.
  • Configuración de la memoria intermedia de indexación
    Elasticsearch utiliza memorias intermedias para organizar datos antes de grabarlos en el disco. Puede ajustar los tamaños de las memorias intermedias de indexación para optimizar el rendimiento de la indexación. El valor indices.memory.index_buffer_size controla el tamaño de la memoria intermedia de cada fragmento.

    Para obtener más información, consulte Configuración de la memoria intermedia de indexación.

    Para obtener más información, consulte Ajuste de la velocidad de indexación.

  • Filtros de tiempo de consulta
    Elasticsearch proporciona filtros de tiempo de consulta que le permiten aplicar filtros a una consulta. El uso de filtros puede mejorar el rendimiento de las consultas, reduciendo la cantidad de datos que es necesario procesar.
  • Intervalo de refresco y vaciado

    Elasticsearch refresca periódicamente su índice para que se puedan realizar búsquedas en nuevos datos. Puede ajustar el intervalo de refresco para equilibrar el rendimiento de la indexación y la latencia de búsqueda.

    Del mismo modo, el intervalo de vaciado controla la frecuencia con la que Elasticsearch graba los datos de la memoria en el disco. El ajuste de estos intervalos puede afectar al rendimiento de la indexación y al uso de los recursos. Los vaciados de Elasticsearch permiten ingresar en Lucene e inician una nueva generación de translog. Los vaciados se realizan automáticamente en segundo plano para asegurar que el translog no crezca demasiado, lo que provocaría que la reproducción de sus operaciones tarde demasiado tiempo durante la recuperación.

    Para obtener más información, consulte Módulos de índice.

    Para obtener más información, consulte Translog.

  • Durabilidad de translog

    El translog es un registro de transacciones que garantiza la durabilidad de los datos en caso de que surjan errores de nodo. Ajuste los valores de la durabilidad del translog para equilibrar la seguridad de los datos y el rendimiento de la indexación. Para obtener más información, consulte Translog.

    Cuando un documento se indexa o actualiza en Elasticsearch, se graba por primera vez en el registro de translog antes de grabarse en el índice. Esto permite a Elasticsearch recuperar los cambios en caso de que surjan errores de nodo o se reinicie. El translog actúa como una memoria intermedia, ya que almacena temporalmente los cambios, hasta que se vacían en el disco y pasan a formar parte del índice.
    1. Durabilidad de la solicitud
      Con la durabilidad de la solicitud, cada solicitud de indexación o actualización se sincroniza en el disco antes de que se devuelva una respuesta al cliente. Esto garantiza que los cambios pasen a ser duraderos de forma inmediata, pero aun así pueden afectar al rendimiento, debido a la sobrecarga de sincronización del disco.
    2. Valores de durabilidad del translog
      Elasticsearch proporciona valores de configuración que permiten controlar la durabilidad del translog. Estos valores personalizados son los siguientes:
      1. translog.sync_interval
        Especifica el intervalo de tiempo entre las operaciones de sincronización. Los cambios realizados en el translog se sincronizan periódicamente en el disco según este intervalo.
      2. translog.durability
        Controla el nivel de durabilidad del translog. Se puede establecer en request, asynco request_sync para equilibrar el rendimiento y la durabilidad.

    De forma predeterminada, Elasticsearch utiliza la modalidad de durabilidad async; con esta, los cambios se sincronizan periódicamente en el disco, pero no necesariamente después de cada solicitud. Esto proporciona un buen equilibrio entre durabilidad y rendimiento.

    Para obtener más información, consulte Translog.

  • Agregaciones
    Elasticsearch proporciona potentes funciones de agregación, pero las agregaciones complejas pueden afectar al rendimiento. Puede ajustar los valores de agregación, como search.max_buckets e indices.breaker.total.limit, para controlar el uso de la memoria y limitar el número de grupos que producen agregaciones.

    Para obtener más información sobre agregación, consulte Agregaciones.

  • Tamaño de fragmento
    Cada fragmento de Elasticsearch viene con una cierta sobrecarga, por lo que disponer de un gran número de fragmentos pequeños puede afectar al rendimiento. Es esencial equilibrar el número de fragmentos y el tamaño de cada fragmento según el volumen de datos y los recursos de hardware.
  • Asignación de fragmentos
    Los fragmentos son las unidades básicas de distribución de datos en Elasticsearch. De forma predeterminada, Elasticsearch intenta distribuir los fragmentos de forma uniforme entre los nodos. Sin embargo, puede controlar los valores de asignación de fragmentos para garantizar un uso equilibrado de los recursos y optimizar el rendimiento del clúster.
  • Transferencia de fragmentos
    Elasticsearch distribuye los fragmentos entre los nodos basándose en un algoritmo hash. Puede influir en la transferencia de fragmentos personalizando el proceso de asignación de fragmentos mediante filtros de asignación de fragmentos y valores de reconocimiento de asignaciones. Esto puede ayudar a equilibrar la distribución de los datos y a mejorar el rendimiento del clúster.
  • Parámetros de la red
    El ajuste de los valores de la red, como las configuraciones TCP, puede afectar al rendimiento y a la capacidad de respuesta de Elasticsearch. Para garantizar que la comunicación de redes sea eficaz, puede optimizar valores como "TCP keep-alive", las memorias intermedias de socket y los tiempos de espera de la conexión.
  • Serialización y compresión de datos
    Elasticsearch permite configurar opciones de serialización y compresión de datos, como la utilización de un formato binario más eficiente (como SMILE o CBOR) o la posibilidad de habilitar la compresión para la comunicación de redes. Estos valores pueden mejorar la eficiencia del almacenamiento y reducir la sobrecarga de la red.

    Consulte Ahorrar espacio y dinero con mejor eficiencia de almacenamiento en Elasticsearch 7.10 para obtener más información.

    Para obtener más información, consulte Módulos de índice.

Todos estos botones de ajuste proporcionan flexibilidad para optimizar Elasticsearch según la carga de trabajo, los recursos de hardware y los requisitos de rendimiento específicos. Es esencial supervisar de forma cuidadosa el impacto de los cambios y realizar pruebas de rendimiento para garantizar que los resultados sean óptimos. Asimismo, consulte siempre la documentación oficial de Elasticsearch y tenga en cuenta las recomendaciones de Elastic relativas al ajuste y a la optimización.