Toon posts:

Programma gekilled, waarom?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een nogal rekenintensief programmaatje geschreven en laat die een flinke tijd runnen om tot een antwoord te kunnen komen (> 2 uur). Het programma loopt vanuit een shell-script, en wordt daar gewoon standaard aangeroepen: ./programma parameters. Bij sommige tests, de wat heftigere, loopt het programma een tijd en wordt dan ineens afgebroken met de melding 'killed <pid>'. De tijd waarop het wordt afgebroken is afhankelijk van de inputfile. Verder is er geen info.

Weet iemand waarom dit gebeurt? Neemt-ie dan teveel geheugenruimte in beslag? Hij schrijft een outputfile die een paar honderd MB is, de schijfruimte begint wel vol te raken maar is dat dan nog lang niet. Ik run 'm vanuit een shellscript omdat ik er niet bij wil blijven wachten dus hoeveel geheugen er precies in gebruik is op het moment dat het programma gekilled wordt weet ik ook niet. Wel dat het continue zo'n 99% cpu-belasting is.

Ik gebruik Slackware 10.2, 2.6.14-kernel (geloof ik, iig 2.6.1x)

  • Rukapul
  • Registratie: Februari 2000
  • Laatst online: 22:41
Heb je al een core dump laten maken (zie ulimit) en vervolgens met gdb een backtrace bekeken? Je kunt dan in elk geval zien waar in je programma (en opeenvolgende library/system calls) de crash plaatsvindt.

Als je al een IDE gebruikt om het programma te runnen dan kun je hem wellicht ook gewoon onder een debugger opstarten en wachten tot hij crasht.

[ Voor 65% gewijzigd door Rukapul op 04-07-2006 13:43 ]


  • PipoDeClown
  • Registratie: September 2000
  • Niet online

PipoDeClown

Izze Zimpell

zo kan het bijvoorbeeld ook zijn dat je xwindows vastloopt en na een tijdje gekilled wordt door de kernel.
zgn. een beveiliging.
weet helaas niet hoe dat heet.

God weet alles, want hij is lid van de Mosad. To protect your freedom i will take that away from you. Mijn drankgebruik heeft ernstig te lijden onder mijn gezondheid.


Verwijderd

Waarschijnlijk alloceert je applicatie teveel geheugen. De Linux kernel kent de "oom killer", welke processen gaat kill'en op het moment dat het geheugen op is. Wellicht dat je in een tweede terminal top /vmstat oid kunt draaien om je geheugenverbruik te monitoren.

Verwijderd

Topicstarter
Tnx. Ik vermoed dat het die oom killer is die r3boot noemt, ga 't vanavond even proberen. Ik run 'm zonder X, op de console. Het programma zelf crasht niet, het wordt gekilled (althans, zo interpreteer ik het :)) Het is geen segmentation fault oid iig.

  • Boudewijn
  • Registratie: Februari 2004
  • Niet online

Boudewijn

omdat het kan

free je al je gehuegen dan wel , dat je malloct?

even in C termen, voor andere talen is er wel analogie. Het lijkt me idd dat je gewoon te veel geheugen gaat vreten.

Zaram module kopen voor je glasvezelaansluiting?


  • Wilke
  • Registratie: December 2000
  • Laatst online: 22:56
de OOM (Out Of Memory) killer hoogstwaarschijnlijk.

Je applicatie gebruikt te veel (te weten, meer dan in totaal beschikbaar op je computer) geheugen, wat kan komen doordat je inefficiente datastructuren gebruikt, memory leaks in je applicatie hebt, of gewoon met ontzettend grote databestanden probeert te werken op een manier die dus niet kan ;)

  • freggy
  • Registratie: Juli 2002
  • Niet online
Als de OOM killer in actie geschoten is, kan je dat trouwens zien in de output van het commando dmesg.

  • Wilke
  • Registratie: December 2000
  • Laatst online: 22:56
Wat doet de applicatie trouwens, globaal gesproken? (als we dat mogen weten tenminste :P )

  • BCC
  • Registratie: Juli 2000
  • Laatst online: 18:48

BCC

Vast 42 berekenen :)

Na betaling van een licentievergoeding van €1.000 verkrijgen bedrijven het recht om deze post te gebruiken voor het trainen van artificiële intelligentiesystemen.

Pagina: 1