De vez em quando, recebemos essa notificação no topo do nosso fórum:
Devido à carga extrema, isso está sendo temporariamente exibido para todos da mesma forma que um usuário desconectado veria.
Tenho algumas observações e perguntas sobre isso:
Primeiro, o servidor não parece estar sob carga extrema. A última vez que vi o aviso, o monitoramento do servidor mostrou que a carga da CPU atingiu um pico de 24%, o uso de memória estava logo acima de 50%, etc. Até onde sei, não houve nenhuma diminuição perceptível no desempenho para os usuários. Então, pergunto: qual é o limite para esse aviso e ele está razoavelmente calibrado?
Segundo, e mais importante para mim, o fórum que administro é totalmente privado. Usuários desconectados não podem ver nada, exceto a página de login. Portanto, a notificação está incorreta, ou seja, a página não é exibida da mesma forma que um usuário desconectado veria, porque tal usuário não conseguiria vê-la de forma alguma. Isso já causou confusão algumas vezes, pois foi interpretado como se as postagens do nosso fórum privado estivessem de repente disponíveis para usuários não autorizados. Eu mesmo fiquei bastante alarmado na primeira vez que vi isso e, de vez em quando, recebo perguntas dos usuários sobre o assunto.
Talvez esse aviso devesse ser reescrito? Ou alterado/desativado para fóruns privados?
def initialize(app, settings = {})
@app = app
end
def call(env)
helper = Helper.new(env)
force_anon = false
if helper.should_force_anonymous?
force_anon = env["DISCOURSE_FORCE_ANON"] = true
helper.force_anonymous!
end
Referência:
Veja também:
MIN_TIME_TO_CHECK = 0.05
ADP = "action_dispatch.request.parameters"
def should_force_anonymous?
if (queue_time = @env['REQUEST_QUEUE_SECONDS']) && get?
if queue_time > GlobalSetting.force_anonymous_min_queue_seconds
return check_logged_in_rate_limit!
elsif queue_time >= MIN_TIME_TO_CHECK
if !logged_in_anon_limiter.can_perform?
return check_logged_in_rate_limit!
end
end
end
false
end
Vou aguardar aqui mais uma reclamação independente.
O melhor que podemos fazer sob carga extrema, para sites que “exigem login”, é simplesmente exibir uma tela azul dizendo “site sobrecarregado, tente novamente mais tarde”. Gostaria de esperar um pouco antes de implementar isso e ver mais uma reclamação.
Isso está acontecendo em uma comunidade privada muito pequena do Discourse que eu visito frequentemente. Ela me deu um erro 502 bad gateway do nginx, e depois não carregou de forma alguma. Eventualmente, carregou, mas mostrou a mensagem de banner mencionada acima.
Acho que é seguro adicionar isso agora.. se um site que exige login estiver sobrecarregado, adicionar mais usuários não vai melhorar as coisas para eles.