¿Alto uso de memoria sin tráfico?

Así que estoy probando Discourse como un posible destino para nuestro foro existente y estoy tratando de averiguar los requisitos.

Actualmente estoy ejecutando la instancia de Discourse en un nodo de Digitalocean con 4vCPUs y 8 GB de RAM.

Con el sitio de vbulletin importado ejecutándose aquí sin tráfico ni actividad, el sistema comienza usando alrededor del 75% de esos 8 GB de RAM y, en unos días, sube al 100% y luego deja de responder por completo.

Esto me confunde ya que el mínimo requerido parece ser mucho menos que esto.

(He reconstruido el contenedor, he revisado y borrado tareas de sidekiq, sigo con un alto uso)

¿Alguien tiene algún consejo o debería estar buscando una configuración de RAM monstruosa solo para mantener el foro en funcionamiento?

¿Cuántas publicaciones se importaron?

El sistema podría estar volviendo a hornear publicaciones y redimensionando imágenes, lo que podría consumir muchos recursos incluso si no tienes usuarios. Puedes mirar en /sidekiq para ver si hay un montón de trabajos en cola y/o en ejecución. Además, htop puede darte algunas pistas sobre lo que se está ejecutando.

3 Me gusta

Aproximadamente 240.000 publicaciones.

La importación fue hace unas 5 semanas, he pasado por 5 reconstrucciones de la aplicación desde entonces, que parece ser lo que resuelve el problema de memoria una vez que el contenedor entra en una falta de respuesta del 100% de memoria.

Borré todas las tareas en sidekiq como se mencionó y el uso sigue en 75%

El gráfico de memoria desde que reconstruí el servidor ayer:

RAM: 8 GB

CPU

Tráfico

Sidekiq

Para mí, esto parece que está filtrando memoria lentamente hasta morir en unos días… (que ha sido el comportamiento observado hasta ahora).

1 me gusta

Después de importar, siempre es una buena idea para el rendimiento de la base de datos crear una copia de seguridad y restaurarla en la misma instancia.

¿Ese gráfico de memoria incluye o excluye la caché? (es decir, ¿cómo se ve la salida de free -m?)

¿Algún plugin?

1 me gusta

## Los plugins van aquí
## ver https://meta.discourse.org/t/19157 para más detalles
hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/discourse-data-explorer.git
          - git clone https://github.com/discourse/discourse-solved.git
          - git clone https://github.com/discourse/discourse-cakeday.git
          - git clone https://github.com/discourse/discourse-spoiler-alert.git
          - git clone https://github.com/discourse/discourse-user-card-badges.git
          - git clone https://github.com/discourse/discourse-adplugin.git

Buena idea. Algo que intentaré.

Eso hizo que el sitio no respondiera… (Copia de seguridad… restauré la copia de seguridad y luego reinicié)

Uso de RAM de 6 GB a 7 GB y el sitio no responde.

Hay casi 5 GB siendo utilizados por Redis, por lo que a Discourse le queda poco para trabajar, especialmente considerando cuántos unicornios estás ejecutando.

Si tu cola de sidekiq está limpia, intenta limpiar Redis ya que puede tener demasiada basura de la importación:

./launcher enter app
redis-cli flushall
1 me gusta

Entendido, probaré el comando de redis.
El problema del trabajador de unicorn fue uno que revisé bastante temprano. Cambié tanto el uso de memoria para db_shared_buffers como también establecí los trabajadores de unicorn en 3.
La configuración de los trabajadores de unicorn parece tener poco o ningún efecto en el número de trabajadores que realmente se ejecutan.

Desde mi archivo app.yml

  ## ¿Cuántas solicitudes web concurrentes se admiten? Depende de la memoria y los núcleos de CPU.
  ## será establecido automáticamente por bootstrap según las CPU detectadas, o puede anularlo
  UNICORN_WORKERS: 3

Ese comando flushall hizo maravillas… bajó a 2 GB de uso… veremos si esto se mantiene ahora.

La parte preocupante era que las cosas seguían creciendo antes. Esperemos que esto permita que la aplicación se autogestione mejor.

De todos modos… ¿la importación mantiene las cosas permanentemente en redis? Parece extraño, pero no tengo ni idea de cómo funciona redis, así que

Muchas gracias por la ayuda.

2 Me gusta

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.