Quindi ho un problema con Sidekiq.
Funziona incredibilmente velocemente nell’esecuzione dei job quando lo monitoro tramite l’interfaccia web di Sidekiq. Ma occasionalmente sembra che si sovraccarichi e inizi a funzionare estremamente lentamente, operando al 1-5% circa della sua velocità normale, senza riprendersi a meno che non svuoti Redis, nonostante l’utilizzo delle risorse del server sia nella norma/basso.
Sembra che, una volta che la coda raggiunge una certa dimensione, si blocchi e rallenti drasticamente, causando una crescita ancora maggiore della coda. Sto solo ipotizzando, forse la coda è grande proprio perché si sta rallentando per qualche altro motivo.
Questo gif descrive ciò che osservo:
Ci sono molte risorse server disponibili: l’utilizzo della CPU è molto basso in questo momento, sotto il 10%. C’è anche molta RAM e spazio SSD disponibile. Per quanto riguarda il server, dispone di 16 core CPU con 32 thread. Ho provato a eseguire tra 8 e 14 unicorn_sidekiq. Ho anche provato con 20, ma questo ha generato molti errori 5xx.
Sono riuscito ad accelerare i job lenti visualizzati nella scheda ‘busy’ dell’interfaccia web di Sidekiq seguendo questa guida:
(aggiungendo ‘vm.overcommit_memory = 1’ al file /etc/sysctl.conf e riavviando), oltre a ridurre il numero di unicorn_sidekiq a 8 (da 12).
Tuttavia, continua a funzionare lentamente. Ieri ho notato questo messaggio nel log di Redis (l’unico altro avviso riguardava il fatto che overcommit_memory non fosse impostato su 1, cosa che ho già corretto):
# WARNING: /proc/sys/net/core/somaxconn è impostato sul valore inferiore di 128
^ Qualcuno ha risolto questo avviso?
Comunque, se qualcuno ha idee su quale potrebbe essere la causa e/o una soluzione, fatemelo sapere. Ve ne sarei grato.
Sarebbe davvero ottimo risolvere questo problema in modo che non si ripresenti, invece di dover svuotare la coda ogni volta.
Ecco uno screenshot di ciò che vedo nella dashboard di Sidekiq:
E alcuni screenshot dei job nella scheda ‘busy’:
Inoltre, qualcuno sa se è sicuro utilizzare questa opzione? Eliminare la coda a priorità bassa dall’interfaccia web di Sidekiq?





