¿Qué tan grave es "el sitio está bajo carga extrema, la búsqueda está deshabilitada, inténtalo más tarde"?

He recibido informes de este mensaje de advertencia por parte de mis miembros. No aparece con frecuencia, pero se está notando. ¿Puedo asumir que no hay nada que hacer aquí y que no es tan grave como parece? «Carga extrema» suena como un problema enorme. Pero desaparece casi de inmediato y la búsqueda vuelve a funcionar.

Agradecería cualquier orientación sobre los pasos para solucionar el problema. ¡Gracias! :seedling:

el sitio está bajo carga extrema, la búsqueda está desactivada, inténtalo de nuevo más tarde

No estoy muy seguro de que sea algo que requiera solución de problemas. Pero ¿quizás podría manejarse de manera diferente?

https://review.discourse.org/t/feature-when-under-extreme-load-disable-search/4538/3

Deberías preocuparte. Revisa el informe de tu rastreador web en el panel de administración.

Esto se activará cuando tus solicitudes web lleguen más rápido de lo que tu servidor puede manejar.

Por ejemplo, si tienes 4 unicornios y, en promedio, necesitas 200 ms para procesar completamente una solicitud, tu capacidad es de 20 solicitudes por segundo.

Si, por un momento, recibes 40 solicitudes por segundo, las solicitudes adicionales se quedarán en una cola esperando y se mostrará ese mensaje. Además, no puedes configurar más unicornios a ciegas, ya que el proceso para responder completamente una solicitud web involucra muchas partes móviles que deben evaluarse cuidadosamente.

Discourse ha incorporado recientemente muchas de estas funciones de degradación elegante mientras trabajamos para escalar y manejar niveles de tráfico extremadamente altos en las instancias de Discourse más grandes de internet.

Parece que hemos tenido un aumento en las vistas de páginas de los rastreadores web en los últimos días. Pero no estoy seguro de si hay algo que pueda o deba hacer al respecto. Personalmente, estoy bien con enviar un aviso a los miembros de vez en cuando cuando el servidor está bajo una carga mayor de lo normal, impidiendo temporalmente las búsquedas. Pero quizás el mensaje de “carga extrema” podría moderarse un poco para decir “el servidor está ocupado”.

Bloquea el user-agent del rastreador malicioso en la configuración del sitio. Hoy en día hay muchos rastreadores realmente problemáticos en internet.

Hmm, solo 1800 vistas de página en 24 horas por un rastreador no deberían generar tanta carga adicional en tu servidor. Podría valer la pena abrir tu registro de acceso y observar las solicitudes que llegan cuando esto ocurre; podría señalar el problema real. Podría tratarse de alguien intentando hackearte o saturando tu API con solicitudes.

Acabo de recibir un informe de otra notificación con apariencia similar. Estamos realizando un AMA y tenemos un poco más de gente de lo habitual leyendo y publicando en el foro, pero no estoy convencido de que se deba a una carga extrema. ¿Quizás un plugin como Discourse Who's Online esté generando carga adicional?

¡Gracias! Lo revisaré ahora.

¿Existe alguna forma de desactivar esto en la configuración de administrador y simplemente permitir que las personas esperen si el sitio se vuelve lento? Creo que nuestro sitio aún no está especialmente concurrido.

Si el rendimiento se degrada hasta el punto de producirse tiempos de espera, no se sentirá lento, simplemente parecerá roto.

¡Ignorar estas advertencias definitivamente no es una buena idea!

Recibo con frecuencia esta notificación de carga extrema.

Tengo un foro deportivo y suele ocurrir cuando varias personas comentan al mismo tiempo sobre un tema específico de un partido en particular. ¿Existe alguna guía o ayuda sobre qué puedo revisar para consultar los registros o el servidor y verificar si está funcionando correctamente? No fue un problema hasta las últimas semanas.

¿Crees que podríamos haber retrocedido en el rendimiento de las publicaciones de usuarios con sesión iniciada @sam?

Definitivamente estoy viendo un problema N+1 en meta que debemos solucionar lo antes posible.

Voy a registrar algunos elementos para resolver esto. Dicho esto, una vez que el sitio esté sobrecargado, los administradores tienen la capacidad de ajustar 2 cosas.

  1. Puedes asignar más recursos a la instancia (más memoria para PG o más workers de unicorn).

  2. Puedes ajustar el umbral para anónimos según:

DISCOURSE_FORCE_ANONYMOUS_MIN_QUEUE_SECONDS y DISCOURSE_FORCE_ANONYMOUS_MIN_PER_10_SECONDS

Arreglé un problema N+1 en el plugin discourse-voting aquí:

Veré si hay algo más que llame la atención.

Encontré otro N+2 aquí:

Estoy revisando para ver si aparece algo más.

P: ¿Qué es un “N+1”? Aunque soy desarrollador (Java), creo que nunca había encontrado este término antes.

Aquí tienes un artículo (más o menos relacionado con Java) que explica este problema: