Puncte:0

Serviciul Systemd pentru Sinatra + Thin continuă să repornească

drapel cn

Am un serviciu systemd pentru o aplicație Sinatra care rulează cu un server Thin în spatele unui proxy invers Nginx. Funcționează bine, dar pentru că primește mult trafic, văd o mulțime de erori nginx despre faptul că nu mă pot conecta la amonte. La inspectarea serviciului, am observat că nu rulează niciodată foarte mult timp, doar câteva minute în cel mai bun caz, ceea ce ar explica de ce Nginx nu se poate conecta de multe ori (în timp ce serviciul se repornește).

Privind ieșirea de jurnalctl pentru serviciu văd multe din asta:

20 decembrie 22:09:48 cs2092 systemd[1]: A început site-ul web al aplicației mele.
20 decembrie 22:10:59 pachetul cs2092[11576]: metoda virtuală pură numită
20 decembrie 22:10:59 cs2092 bundle[11576]: terminați apelat fără o excepție activă
20 decembrie 22:10:59 cs2092 systemd[1]: my-service.service: Procesul principal a ieșit, cod=omorât, stare=6/ABRT
Dec 20 22:10:59 cs2092 systemd[1]: my-service.service: Eșuat cu rezultatul „semnal”.
Dec 20 22:10:59 cs2092 systemd[1]: my-service.service: Timpul de suspendare a serviciului s-a încheiat, repornirea programării.
Dec 20 22:10:59 cs2092 systemd[1]: my-service.service: Lucrare de repornire programată, contorul de repornire este la 7.
20 decembrie 22:10:59 cs2092 systemd[1]: S-a oprit site-ul web al aplicației mele.
20 decembrie 22:10:59 cs2092 systemd[1]: Am pornit site-ul web al aplicației mele.
20 decembrie 22:11:19 pachetul cs2092[11828]: metoda virtuală pură numită
20 decembrie 22:11:19 cs2092 bundle[11828]: terminați apelat fără o excepție activă
20 decembrie 22:11:19 cs2092 systemd[1]: my-service.service: Procesul principal a fost ieșit, cod=omorât, stare=6/ABRT
Dec 20 22:11:19 cs2092 systemd[1]: my-service.service: Eșuat cu rezultatul „semnal”.
Dec 20 22:11:19 cs2092 systemd[1]: my-service.service: Timpul de suspendare a serviciului s-a încheiat, repornirea programării.
20 decembrie 22:11:19 cs2092 systemd[1]: my-service.service: Lucrare de repornire programată, contorul de repornire este la 8.
20 decembrie 22:11:19 cs2092 systemd[1]: S-a oprit site-ul web al aplicației mele.
20 decembrie 22:11:19 cs2092 systemd[1]: A început site-ul web al aplicației mele.
20 decembrie 22:14:28 pachetul cs2092[11968]: metoda virtuală pură numită
20 decembrie 22:14:28 cs2092 bundle[11968]: terminați apelat fără o excepție activă
Dec 20 22:14:28 cs2092 systemd[1]: my-service.service: Procesul principal a ieșit, cod=omorât, stare=6/ABRT
Dec 20 22:14:28 cs2092 systemd[1]: my-service.service: Eșuat cu rezultatul „semnal”.
Dec 20 22:14:28 cs2092 systemd[1]: my-service.service: Timp de suspendare a serviciului s-a încheiat, repornirea programării.
20 decembrie 22:14:28 cs2092 systemd[1]: my-service.service: Lucrare de repornire programată, contorul de repornire este la 9.
20 decembrie 22:14:28 cs2092 systemd[1]: S-a oprit site-ul web al aplicației mele.
20 decembrie 22:14:28 cs2092 systemd[1]: A început site-ul web al aplicației mele.

Se pare că aplicația este ucisă în mod regulat? De ce se întâmplă asta?

Iată serviciul:

[Unitate]
Description=Site-ul web al aplicației mele
Documentație=https://myapp.com
După=rețea.țintă

[Serviciu]
Tip=simplu
WorkingDirectory=/var/www/my-app
Environment="RACK_ENV=producție"
ExecStart=/usr/local/bin/bundle exec /usr/local/bin/thin -R /var/www/my-app/config.ru -p 6903 --max-conns 15360 --max-persistent-conns 2048 --threaded --debug start
ExecStop=/usr/local/bin/bundle exec /usr/local/bin/thin -R /var/www/my-app/config.ru -p 6903 stop
ExecReload=/usr/local/bin/bundle exec /usr/local/bin/thin -R /var/www/my-app/config.ru -p 6903 --max-conns 15360 --max-persistent-conns 2048 --threaded --debug restart
Restart=la eșec
User=julien

[Instalare]
WantedBy=multi-user.target

Un alt lucru pe care nu îl înțeleg, după cum puteți vedea din serviciul cu care încep Sinatra --max-conns 15360 și totuși în jurnalctl ieșire văd că conexiunile maxime sunt setate la 1024:

21 dec 10:24:24 pachetul cs2092[21058]: Se pornește aplicația mea în producție...
21 decembrie 10:24:24 cs2092 bundle[21058]: 2021-12-21 10:22:30 +0000 Server web subțire (nume de cod v1.8.1 Infinite Smoothie)
21 decembrie 10:24:24 pachet cs2092[21058]: 2021-12-21 10:22:30 +0000 Depanare activată
Dec 21 10:24:24 cs2092 bundle[21058]: 2021-12-21 10:22:30 +0000 Conexiuni maxime setate la 1024
21 dec 10:24:24 cs2092 bundle[21058]: 2021-12-21 10:22:30 +0000 Ascultare la 0.0.0.0:6903, CTRL+C pentru a opri

Ai idee despre ce se întâmplă?

Notă: Ubuntu 18.04.4

drapel jp
S-a răspuns la postarea la https://unix.stackexchange.com/a/683327/1027
Puncte:0
drapel cn

Deci, se pare că problema a fost în serverul Thin, odată ce l-am înlocuit cu Puma, toate problemele au dispărut.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.