L'interfaccia utente fallisce casualmente per un breve periodo

Ciao!

Ho installato la mia istanza ‘stable’ di Discourse con Postgres ed Redis esterni.
Per precisare l’architettura: in Azure, 1 LoadBalancer, 1 VM che ospita il container Discourse con condivisione NFS per backup e immagini, 1 Postgres, 1 Redis.

L’ho personalizzato con il mio logo, i plugin discourse-calendar e discourse-news (e altre cose, ma irrilevanti qui).

Casualmente, per un periodo di circa 30 minuti, alcune parti dell’interfaccia utente falliscono:

  • Il logo principale torna a quello predefinito
  • La favicon torna a quella predefinita
  • La pagina “upcoming-events” generata da discourse-calendar scompare (nessun link e risposta 404 quando si accede tramite URL)
  • Il logo personalizzato fornito a discourse-news (con un URL) scompare

Poi ritorna tutto alla normalità.

Non ho nulla nei log a riguardo.
La console del mio browser non mostra nulla.
Una cosa che posso dire è che durante questo periodo, vedo un aumento dei Redis cache miss.

Qualcuno può aiutarmi a risolvere questo problema? Non so nemmeno dove trovare log pertinenti…

Temo che questo sia troppo lontano dall’installazione standard perché io possa saperne qualcosa. :slight_smile:

Sei riuscito a trovare quello che ti serviva?

2 Mi Piace

No, non ci sono riuscito.
E il mio problema continua a presentarsi occasionalmente :disappointed_relieved:
Non so dove cercare un indizio…

La cosa più semplice sarebbe passare a un’installazione stabs/standard. Sarebbe anche più economica. Non riesco a immaginare cosa possa essere.

1 Mi Piace

@pfaffman ho utilizzato l’installazione standard dal mio punto di vista.
Tranne che ho utilizzato la funzionalità fornita per usare db esterno e redis.
Ma ho usato app.yaml e docker build and run descritti nell’installazione standard.

Ho fatto ciò per poter fornire alta disponibilità e diverse strategie di scaling: con un deployment completamente standalone, puoi scalare solo verticalmente (aumentare le risorse del tuo nodo) e non avere alta disponibilità.

Capisco. Sembra che dovrebbe funzionare. La mia migliore ipotesi è che tu stia ridimensionando a zero macchine virtuali e quello che vedi è il sito memorizzato nella cache nel tuo browser. O qualche altro modo in cui il bilanciatore di carico non si connette all’host. O discourse non sta ottenendo l’IP reale e sta limitando la frequenza (ma di solito vedresti un errore).

Ma le tue funzionalità di alta disponibilità stanno fornendo bassa disponibilità. A meno che tu non stia passando da decine di utenti la maggior parte del tempo a migliaia in altri momenti (come per un sito sportivo), allora il ridimensionamento probabilmente causerà più problemi che soluzioni.

Quindi la prima cosa che farei è eliminare il bilanciatore di carico e vedere se questo risolve il problema. Poi deciderò cosa fare da lì. Se succede una volta al mese non sarà facile da diagnosticare.