La connessione di rete Redis sta funzionando estremamente male

Ottengo costantemente questo nei log, con valori compresi tra circa 100k e circa 1,35 milioni, ma le letture vicine a 100k sembrano essere abbastanza comuni:

La tua connessione di rete Redis sta funzionando in modo estremamente scadente. Le ultime letture RTT sono state [97069, 103986, 98459, 100762, 381617], idealmente dovrebbero essere < 1000. Assicurati che Redis sia in esecuzione nella stessa AZ o data center di Sidekiq. Se questi valori sono vicini a 100.000, significa che il tuo processo Sidekiq potrebbe essere saturato di CPU; riduci la concorrenza e/o consulta https://github.com/mperham/sidekiq/discussions/5039

Questo indica che forse Redis non è in grado di utilizzare abbastanza CPU? Sembra esserci molto spazio per la CPU e la RAM sul server stesso.

Inoltre:
Sidekiq sta consumando troppa memoria (utilizzando: 3570.19M) per 'www.example.com', riavvio

Questo utilizza l’app.yml all-in-one con Discourse stable 3.3.2.

Da app.yml:

UNICORN_SIDEKIQS: 9
DISCOURSE_SIDEKIQ_WORKERS: 5

Ho aggiunto anche questa configurazione all’host:

Informazioni sulla dashboard di Sidekiq:


Sembra proprio che Redis non sia in grado di superare l’utilizzo di memoria di 1024M.

Se qualcuno ha qualche idea, la apprezzerei! :meow_heart:

Per dare seguito a questo, sto riscontrando lo stesso problema con Jobs::PostAlert:

Con questi job che spesso arrivano a 15 minuti quando si utilizzano 4 sidekiq con 5 (predefiniti) thread con i test attuali. Sembra che la velocitĂ  dei job al secondo per Sidekiq dipenda principalmente da quanti di questi job vengono eseguiti contemporaneamente e quanti thread sono liberi per gli altri job.

Aumentare i Sidekiq a 6 o piĂą (5 thread) aumenterĂ  la velocitĂ  di svuotamento della coda, ma postgres si bloccherĂ  abbastanza regolarmente (ipotizzo a causa di troppi job Jobs::PostAlert eseguiti contemporaneamente).

Questo è su Stable 3.3.2. Le modifiche e correzioni dal thread collegato sembrano essere già state implementate in 3.3.2, se non erro.

Postgres non dovrebbe mai bloccarsi e in genere indica un bug di postgres o una sorta di problema piĂą grande.

Hai dei log?

1 Mi Piace

Hai riavviato il server da quando hai apportato quelle modifiche alla configurazione del kernel?

Forse

lscpu

sarebbe anche utile

Non dovresti mai aumentare UNICORN_SIDEKIQS così tanto, aumentando solo i worker ma

Questo non dovrebbe mai succedere.

Le possibilitĂ  sono:

  1. Sei limitato nelle risorse perché o
    a) Il tuo sito ha superato le risorse del server
    b) Stai allocando male le risorse
  2. C’è un bug da qualche parte nello stack

Inizierei impostando

UNICORN_SIDEKIQS: 1
DISCOURSE_SIDEKIQ_WORKERS: 20

che dovrebbe liberare un po’ di RAM dal tuo server.

Per ulteriori informazioni dovrai eseguire i job in questione in una console PostgreSQL e segnalare qual è il collo di bottiglia.