Ciao a tutti,
Ho un’installazione con 3 deployment di Openshift, uno per Redis (7.0.10), uno per Postgress (13.10) e un altro per discourse (stable 3.0.3), tutto funziona bene quando viene distribuito, tuttavia, dopo un paio d’ore o giorni, i processi sidekiq (UNICORN_SIDEKIQS=3) si fermano, ci sono alcune cose che ho notato, sotto /shared/log/rails, non viene generato alcun sidekiq.log, e credo che questo sia il motivo per cui sidekiq non si riavvia automaticamente:
root@discourse-b9f766dcf-52zjq:/var/www/discourse# ls -laF /shared/log/rails/
total 32
drwxr-xr-x. 2 nobody www-data 4096 Jun 9 08:57 ./
drwxr-xr-x. 3 root root 4096 May 30 06:16 ../
-rw-r--r--. 1 nobody www-data 16082 Jun 9 09:28 production.log
-rw-r--r--. 1 nobody www-data 1345 Jun 9 09:02 unicorn.stderr.log
-rw-r--r--. 1 nobody www-data 204 Jun 9 09:02 unicorn.stdout.log
Quando sidekiq si ferma, vedo il seguente messaggio in /host/logs:
Info:
Sidekiq is consuming too much memory (using: 530.35M) for 'discourse.internal.odencluster.com', restarting
backtrace:
config/unicorn.conf.rb:163:in `check_sidekiq_heartbeat'
config/unicorn.conf.rb:243:in `master_sleep'
unicorn-6.1.0/lib/unicorn/http_server.rb:295:in `join'
unicorn-6.1.0/bin/unicorn:128:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/3.2.0/bin/unicorn:25:in `load'
/var/www/discourse/vendor/bundle/ruby/3.2.0/bin/unicorn:25:in `<main>'
Poi vedo nel log del pod di discourse il messaggio:
(48) Reopening logs
(48) Reopening logs
(48) Reopening logs
Tuttavia, poiché non c’è alcun sidekiq.log sotto /shared/log/rails/, non si riavvia.
La mia conoscenza di Rails è quasi nulla, quindi trovo difficile risolvere il problema, ma vedo che sidekiq non è in pausa:
[1] pry(main)> Sidekiq.paused?
=> false
E quando lo avvio manualmente, funziona:
2023-06-09T09:47:15.556Z pid=195386 tid=449q INFO: Booting Sidekiq 6.5.8 with Sidekiq::RedisConnection::RedisAdapter options {:host=>"redis", :port=>6379, :namespace=>"sidekiq"}
2023-06-09T09:47:20.528Z pid=195386 tid=449q INFO: Booted Rails 7.0.4.3 application in production environment
2023-06-09T09:47:20.528Z pid=195386 tid=449q INFO: Running in ruby 3.2.2 (2023-03-30 revision e51014f9c0) [x86_64-linux]
2023-06-09T09:47:20.528Z pid=195386 tid=449q INFO: See LICENSE and the LGPL-3.0 for licensing details.
2023-06-09T09:47:20.528Z pid=195386 tid=449q INFO: Upgrade to Sidekiq Pro for more features and support: https://sidekiq.org
Ci sono un paio di cose che immagino mi aiuterebbero a risolvere questo problema:
- Come posso fare in modo che crei
/shared/log/rails/sidekiq.log? - Come posso permettere a sidekiq di usare più di 530M di memoria?
Se qualcuno avesse un suggerimento, per favore fatemelo sapere e vi ringrazio in anticipo per il tempo dedicato a supportarmi!
Buona giornata! ![]()