Puncte:1

Cum să diagnosticați o aplicație de server Java care moare liniștită?

drapel cn

Rulăm un grup de aplicații de server Java Spring pe instanțe AWS EC2 care rulează Centos 7. Avem monitoare de sănătate pe ele și ocazional se va declanșa o alarmă și vom descoperi că procesul Java tocmai a dispărut în liniște. Nu putem găsi nimic în niciunul dintre jurnalele... fie ale noastre, fie jurnalele de sistem.Avem un „catch Throwable” exterior în jurul propriului nostru cod care înregistrează ceea ce prinde, dar rulăm Tomcat, care are mai multe fire proprii. Am adăugat logare suplimentară pentru a încerca să surprindem momentul în care dispare, dar până acum nu a oferit nicio informație.

M-am uitat peste această întrebare: Cum să aflu de ce un proces Java a murit fără urmă în Linux. Nu văd nimic util acolo.

În prezent, nu putem implica lansatorul acestor procese într-o soluție. E o poveste lunga. Crede-mă că am încercat să mergem pe acel drum.

Orice sugestii? Mă întreb dacă ar trebui să înglobez procesul Java într-un proces părinte exterior care monitorizează și înregistrează cu atenție toate semnalele din procesul secundar Java. Mă întreb dacă există o astfel de soluție disponibilă pe care nu am găsit-o încă. Orice idei ar fi foarte apreciate.

Michael Hampton avatar
drapel cz
Cum porniți mai exact aceste aplicații?
CryptoFool avatar
drapel cn
Folosim Chef Habitat, dar suntem în mijlocul trecerii la altceva și nu vrem să-i atingem configurația. A fost atât de prost la gestionarea proceselor, chiar dacă propune să facă acest lucru, încât am dezactivat toate funcțiile sale de gestionare a proceselor. Nu vreau să merg acolo. Pot opri serverul oficial care rulează și apoi rulez propria mea versiune manual sau printr-un alt manager de proces, dacă este necesar. Nu știu dacă o astfel de configurație ar prezenta aceeași problemă. Dacă nu, cel puțin atunci am fi mai suspicioși față de Habitat în sine.
CryptoFool avatar
drapel cn
M-am gândit să caut ce poate face systemd pentru mine. La prima vedere, asta părea complicat și nu neapărat util. Știu că există și alți manageri de proces. Sper să găsesc unul destinat depanării și/sau depanării situațiilor ca a mea. Sunt programator, nu administrator de sistem, așa că sunt destul de virgin la toate acestea.
Michael Hampton avatar
drapel cz
https://docs.spring.io/spring-boot/docs/current/reference/html/deployment.html#deployment.installing.nix-services.system-d
CryptoFool avatar
drapel cn
@MichaelHampton - mulțumesc, dar întrebarea mea nu este cum să instalez un serviciu sub systemd. Știu cum să fac asta. Întrebarea este dacă lăsând systemd să gestioneze durata de viață a aplicației/serviciului meu, îmi poate oferi un fel de indicație despre motivul pentru care aplicația mea a murit, pe care nu o voi obține din sursele existente. Dacă poate face acest lucru, ce fel de configurație trebuie să efectuez pentru a obține cele mai multe informații posibile din systemd atunci când aplicația mea dispare?

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.