Toon posts:

Monitor processen in linux

Pagina: 1
Acties:

Onderwerpen


  • Yarisken
  • Registratie: Augustus 2010
  • Laatst online: 21:08
Hallo,

Sinds enige tijd hebben wij een applicatie die om de enkele weken stopt met werken. Na een herstart is alles terug okee.
Ik ben zelf geen developer maar sysadmin van die server. De applicatie draait op jboss en er is een frontend met apache.
Vandaag is die server weer onderuit gegaan en ik moet het nu is grondig onderzoeken van mijn baas :-).

In de monitoring ( zabbix ) kan ik zien dat de applicatie de laatste 2 maanden 4 keer een plotselinge verhoging heeft van het aantal processen. Meestal zijn er tussen de 130 - 160 processen actief en vlak voor een crash gaat het boven de 300.
Ik heb de server tijdens de crash niet kunnen onderzoeken en ik ga dit ook niet kunnen doen in de toekomst. Applicatie is heel belangrijk en na een herstart werkt alles terug.

Als extra monitoring heb ik nu atop geinstalleerd. Om de 10 minuten wordt er nu een log opgeslagen waar ik kan zien welke processen op dat moment actief waren.
Mijn vraag is of er mensen zijn met nog ideeen om deze server te monitoren. We gebruiken nu zabbix maar qua cpu, mem, netwerk etc.. is er geen enkel probleem.
Ik zoek dus naar nog mogelijkheden om de processen te monitoren. Eens ik zie welke processen erbij komen ga ik moeten onderzoeken "waarom" deze processen erbij komen.
Waarschijnlijk weer vuile code maar dat mag ik nu nog niet zeggen :-).


Groeten,

Jeroen

  • DiedX
  • Registratie: December 2000
  • Laatst online: 21:39
Ha Jeroen,

Als eerste: we 'groeten' elkaar niet op GoT.

Dit klinkt in mijn oren (maar ik ben geen Java-expert) als een Java probleem, en geen Linux probleem. Heeft de applicatie logging? Kan je die omhoog zetten?

DiedX supports the Roland™, Sound Blaster™ and Ad Lib™ sound cards


  • Yarisken
  • Registratie: Augustus 2010
  • Laatst online: 21:08
DiedX schreef op maandag 31 augustus 2015 @ 22:53:
Ha Jeroen,

Als eerste: we 'groeten' elkaar niet op GoT.

Dit klinkt in mijn oren (maar ik ben geen Java-expert) als een Java probleem, en geen Linux probleem. Heeft de applicatie logging? Kan je die omhoog zetten?
Hallo,

Mij lijkt het ook een java probleem. Natuurlijk is het altijd de fout van het "netwerk" en daarmee komt het bij mij terecht. Ik moet nu eerst aantonen dat het aan de applicatie zelf ligt.
Ik ga is horen of ze nog extra jboss logging kunnen aanzetten. De huidige logs daar kan ik niets in terugvinden.

  • DiedX
  • Registratie: December 2000
  • Laatst online: 21:39
Daar even op wachten dan :) JBoss logging geeft verder niets aan?

DiedX supports the Roland™, Sound Blaster™ and Ad Lib™ sound cards


  • Rainmaker
  • Registratie: Augustus 2000
  • Laatst online: 13:30
Er is een reden waarom er zoveel processen gespawned worden.

Dat kan zijn door een netwerkprobleem (als iedere message een aparte thread spawned bijvoorbeeld), maar kan ook simpelweg ergens een loop zijn waar de break conditie nooit gehaald wordt door een of andere edge case.

Is heel weinig over te zeggen zonder dat je de source hebt.

Contact opnemen met leverancier, en kijken of je debugging o.i.d. kunt activeren, zodat het de volgende keer (hopelijk) wel in de log staat.

We are pentium of borg. Division is futile. You will be approximated.


  • Yarisken
  • Registratie: Augustus 2010
  • Laatst online: 21:08
Ik ga er toch nog geraken denk ik. Ik zie deze error's regelmatig terugkomen :

[org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory] Destroying connection that is not valid, due to the following exception: oracle.rdb.jdbc.common.Connection@53d4d1a0
java.sql.SQLException: Connection lost : java.io.EOFException

2015-08-31 10:28:13,642 WARN [org.jboss.resource.connectionmanager.TxConnectionManager] Connection error occured: org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener@7f61df16[state=NORMAL mc=org.jboss.resource.adapter.jdbc.local.LocalManagedConnection@390e8a5f handles=0 lastUse=1441016219237 permit=false trackByTx=false mcp=org.jboss.resource.connectionmanager.JBossManagedConnectionPool$PoolByCri@1bdc33a0 context=org.jboss.resource.connectionmanager.InternalManagedConnectionPool@15c15baa xaResource=org.jboss.resource.connectionmanager.TxConnectionManager$LocalXAResource@727d5eaf txSync=null]
java.sql.SQLException: Connection lost : java.io.EOFException

Ik denk dat het is zoals u zegt Rainmaker. Connecties worden opgezet en terug afgebroken en bij heavy load krijgen we zo een soort loop tot de server niet meer kan volgen.
Als ik links en rechts lees op forums dan zou de odjbcxx.jar niet de juiste zijn volgende de java jdk die bij ons geinstalleerd staat.

Edit: ik zie deze errors ook terugkomen in de logs op dagen dat er geen probleem is. Alleen niet in dezelfde grootorde.

[Voor 4% gewijzigd door Yarisken op 01-09-2015 00:22]


  • johnkeates
  • Registratie: Februari 2008
  • Laatst online: 14-01 20:14
Of de EOF Exception betekent dat de connectie niet lukt. Wat het sowieso al een probleem in Java maakt. Het kan zijn dat je tegen een ulimit aan zit, die kan je verhogen, of anders kijken of je op hetzelfde moment als de Java applicatie niet werkt je zelf op die server wel een connectie kan opzetten. Als zelfs een netcat zonder EOF werkt heb je al genoeg bewijs lijkt me. Je kan ook voor een trace of packet capture gaan als je dat leuker vind. Zelfs een strace zou ook al genoeg moeten zijn...

  • Yarisken
  • Registratie: Augustus 2010
  • Laatst online: 21:08
johnkeates schreef op dinsdag 01 september 2015 @ 00:23:
Of de EOF Exception betekent dat de connectie niet lukt. Wat het sowieso al een probleem in Java maakt. Het kan zijn dat je tegen een ulimit aan zit, die kan je verhogen, of anders kijken of je op hetzelfde moment als de Java applicatie niet werkt je zelf op die server wel een connectie kan opzetten. Als zelfs een netcat zonder EOF werkt heb je al genoeg bewijs lijkt me. Je kan ook voor een trace of packet capture gaan als je dat leuker vind. Zelfs een strace zou ook al genoeg moeten zijn...
Ik zou inderdaad de ulimit kunnen verhogen. Ding is dat op 2 maanden tijd het 4 keer is voorgevallen.
De ulimit verhogen kan een workaround zijn maar is geen oplossing lijkt me.
Ik zal is kijken om een tcpdump te starten. Zo kan ik inderdaad zien of er voor de crash een veelvoud aan connecties gebeurt naar de database.
Bedankt voor de tip.

  • Ventieldopje
  • Registratie: December 2005
  • Laatst online: 00:19

Ventieldopje

I'm not your pal, mate!

De error doet mij ook een beetje denken aan dat de database server de connectie dicht gooit en de java applicatie dit niet verwacht. Is er niet een proces dat door de hoge load langer duurt dan normaal, langer dan de keep-alive tijd van de database? Met MySQL is dit vaak een issue in ieder geval.

www.maartendeboer.net
1D X | 5Ds | Zeiss Milvus 25, 50, 85 f/1.4 | Zeiss Otus 55 f/1.4 | Canon 200 f/1.8 | Canon 200 f/2 | Canon 300 f/2.8


  • CAPSLOCK2000
  • Registratie: Februari 2003
  • Laatst online: 15:37

CAPSLOCK2000

zie teletekst pagina 888

Je zou eens naar forkstat of auditd kunnen kijken, daarmee kun je vrij eenvoudig achterhalen welke nieuwe processen er verschijnen.

This post is warranted for the full amount you paid me for it.


  • Yarisken
  • Registratie: Augustus 2010
  • Laatst online: 21:08
Ventieldopje schreef op dinsdag 01 september 2015 @ 15:02:
De error doet mij ook een beetje denken aan dat de database server de connectie dicht gooit en de java applicatie dit niet verwacht. Is er niet een proces dat door de hoge load langer duurt dan normaal, langer dan de keep-alive tijd van de database? Met MySQL is dit vaak een issue in ieder geval.
Wel ik weet dat je in jboss een application pool kan instellen om connecties te maken naar de database.
Ik zal is vragen aan de dev om hier samen is naar te kijken.

  • Yarisken
  • Registratie: Augustus 2010
  • Laatst online: 21:08
CAPSLOCK2000 schreef op dinsdag 01 september 2015 @ 22:39:
Je zou eens naar forkstat of auditd kunnen kijken, daarmee kun je vrij eenvoudig achterhalen welke nieuwe processen er verschijnen.
Thx ik zal die tools is bekijken morgen.

  • Yarisken
  • Registratie: Augustus 2010
  • Laatst online: 21:08
Ik wil hier even een update geven.
We hebben het probleem terug gekregen. Met logging van atop kon ik zien dat apache enorm veel processen aan het opstarten was. Hierdoor ging de server onderuit.
In de log van mod_jk zag ik dat apache geen connecties meer kon maken met de tomcat server. Deze beide draaien op dezelfde server.
Ik ben is gaan kijken in de workerproperties en daar staat geen config voor het afsluiten van de lopende connecties.
Ik vermoed dus dat apache constant connecties opstart om de tomcat te bereiken. Omdat de connecties niet op tijd worden gestopt loopt de server vast.
Nu nog uitzoeken hoe ik dit kan instellen op de tomcat en apache.

Hieronder de log van mod_jk

[Thu Oct 01 13:47:19 2015][9564:38880] [error] ajp_connection_tcp_get_message::jk_ajp_common.c (951): can't receive the response message from tomcat, network problems or tomcat (10.0.0.142:8009) is down (errno=104)
[Thu Oct 01 13:47:19 2015][9564:38880] [error] ajp_get_reply::jk_ajp_common.c (1592): Tomcat is down or refused connection. No response has been sent to the client (yet)
[Thu Oct 01 13:47:19 2015][9564:38880] [info] ajp_service::jk_ajp_common.c (1902): receiving from tomcat failed, recoverable operation attempt=0
[Thu Oct 01 13:47:19 2015][9564:38880] [info] ajp

Thx voor de hulp.
Pagina: 1



Nintendo Switch (OLED model) Apple iPhone SE (2022) LG G1 Google Pixel 6 Call of Duty: Vanguard Samsung Galaxy S22 Garmin fēnix 7 Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2022 Hosting door True

Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee