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