elasticsearch - tutorial - Respecto al uso de la memoria de búsqueda elástica
elasticsearch kibana (1)
Actualmente estoy usando elasticsearch 0.9.19. La máquina que estoy utilizando tiene aproximadamente 300 GB de espacio en disco y la RAM en ella es de alrededor de 23 GB. He asignado alrededor de 10 GB de memoria RAM a la búsqueda elástica. Mis operaciones son intensivas en escritura. Son alrededor de 1000docs/s
. Solo estoy ejecutando búsquedas elásticas en la máquina y ningún otro proceso. El tamaño del documento no es grande. Son pequeños solo con no más de 10 campos. La búsqueda elástica se ejecuta solo en una máquina con 1 fragmento y 0 réplicas.
La memoria utilizada comienza a aumentar muy rápidamente cuando envío 1000 docs/s
. Aunque he asignado 10 GB de RAM solo para búsqueda elástica, aún así se consumen casi 21 GB de memoria RAM y, finalmente, el proceso de búsqueda elástico resulta en espacio de almacenamiento dinámico. Más tarde necesito borrar el caché del sistema operativo para liberar toda la memoria. Incluso cuando dejo de enviar búsquedas elásticas, 1000docs/s
, también la memoria no se borra automáticamente.
Entonces, por ejemplo, si 1000doc/s
búsqueda elástica con operaciones de escritura de 1000doc/s
, descubrí que el uso de la memoria RAM de 18 GB fue muy rápido y más tarde cuando reduje mis operaciones de escritura a solo 10 documentos / s, también la memoria utilizada muestra alrededor de 18 GB. Lo cual creo que debería reducirse con la disminución en el número de operaciones de escritura. Estoy usando Bulk API para realizar mis operaciones de escritura con un tamaño de 100 documentos por consulta. Los datos provienen de 4 máquinas cuando las operaciones de escritura son alrededor de 1000 docs / seg
Estas son las figuras que obtengo después de hacer top
Mem: 24731664k total, 18252700k utilizado, 6478964k libre, 322492k almacenamientos intermedios
Intercambio: 4194296k total, 0k usado, 4194296k libre, 8749780k en caché
PID USER PR NI VIRT RES SHR S% CPU% MEM TIME + COMMAND
1004 elásticos 20 0 10.7g 8.3g 10m S 1 35.3 806: 28.69 java
Por favor, dígame si alguien tiene alguna idea, ¿cuál podría ser el motivo? Tengo que detener mi aplicación debido a este problema. Creo que me falta alguna configuración. Ya he leído todas las documentaciones relacionadas con la memoria caché para la búsqueda elástica aquí http://www.elasticsearch.org/guide/reference/index-modules/cache.html
También intenté borrar el caché utilizando la API de caché clara y también probé Flush API. Pero no hubo ninguna mejora.
Gracias por adelantado.
Para resumir la respuesta en el hilo de la lista de correo: el problema era que el cliente de Ruby no podía controlar sus inserciones, y el uso de la memoria Lucene crece a medida que se agregan grandes cantidades de documentos. Creo que también puede haber un problema con la frecuencia de los commits: es importante comprometerse de vez en cuando para descargar los documentos recién agregados al disco. ¿El OP todavía tiene el problema? Si no, ¿podría publicar la solución?