Page 1 of 1

Memory leak in sabnzbd 0.6.5

Posted: July 23rd, 2011, 7:32 am
by sl1000
Hoi,

Ik repackage de SABnzbd source code voor QNAP, zodat deze gemakkelijk door gebruikers op qnap systemen geïnstalleerd kan worden, weinig spannends aan.

ik loop nu echter tegen een probleem op bij een gebruiker dat ik niet weet op te lossen.
De gebruiker draait sabnzbd 0.6.5, en heeft een gigantische queue uit staan van meer dan 5 TB aan downloads.

Over de uren heen gebruikt SAB bij deze gebruiker echter steeds meer geheugen, totdat de service crashed.
Het is een simpel arm-based NAS systeem met 512 mb aan fysiek geheugen.

Heeft er iemand tips om dit op te lossen??

wat statistieken nadat de service 12 uur draait:
(mocht men specifiekere info willen, dan hoor ik het graag)

Of course if you want me to refrase it in English that's no issue either :)

Code: Select all

[/share/Public] # free
              total         used         free       shared      buffers
  Mem:       515624       495088        20536            0          848
 Swap:       530040       226244       303796
Total:      1045664       721332       324332

Code: Select all

[/share/Public] # ps | grep nzb
28511 admin       536 S   grep nzb
31876 admin    425152 S   /opt/bin/python2.6 SABnzbd.py -f Config/sabnzbd.ini -l 0 -b 0 -d
[/share/Public] # cat /proc/31876/status
Name:   python2.6
State:  S (sleeping)
Tgid:   31876
Pid:    31876
PPid:   1
TracerPid:      0
Uid:    0       0       0       0
Gid:    0       0       0       0
FDSize: 256
Groups: 0 100
VmPeak:   791400 kB
VmSize:   766820 kB
VmLck:         0 kB
VmHWM:    429492 kB
VmRSS:    423380 kB
VmData:   751604 kB
VmStk:       172 kB
VmExe:         4 kB
VmLib:     12748 kB
VmPTE:       610 kB
Threads:        21
SigQ:   0/3955
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000001001000
SigCgt: 0000000180004002
CapInh: 0000000000000000
CapPrm: ffffffffffffffff
CapEff: ffffffffffffffff
CapBnd: ffffffffffffffff
Cpus_allowed:   1
Cpus_allowed_list:      0
voluntary_ctxt_switches:        40646
nonvoluntary_ctxt_switches:     137

Code: Select all

[/share/HDA_DATA/.qpkg/SABnzbdplus/Config/admin] # ll
drwxr-xr-x    3 admin    administ     4.0k Jul 23 05:15 ./
drwxr-xr-x    3 admin    administ     4.0k Jul 23 13:17 ../
-rw-------    1 admin    administ        6 Jul 23 08:00 bookmarks.sab
drwx------    2 admin    administ     4.0k Jun 11 21:03 future/
-rw-r--r--    1 admin    administ    55.0k Jul 23 05:15 history1.db
-rw-------    1 admin    administ       11 Jul 23 08:00 postproc1.sab
-rw-------    1 admin    administ    11.3k Jul 23 08:00 queue9.sab
-rw-------    1 admin    administ    35.1k Jul 23 13:14 rss_data.sab
-rw-r--r--    1 admin    administ        5 Jul 22 10:57 running.sab
-rw-------    1 admin    administ      189 Jul 23 13:22 totals9.sab
-rw-------    1 admin    administ       52 Jul 23 08:00 watched_data.sab

Re: Memory leak in sabnzbd 0.6.5

Posted: July 23rd, 2011, 1:13 pm
by sander
Ik ben geen deskundige op dit gebied, maar een paar vragen/opmerkingen:

"totdat de service crashed.": echt crasht? Wat zijn de foutmeldingen (of verschijnselen)?
"steeds meer geheugen" hoeft strikt genomen geen probleem te zijn; op *ix wordt beschikbaar geheugen gewoon gebruikt.
Met oudere versies (<0.6.5): treedt het verschijnsel dan niet op?
Treedt het ook op als er veel minder in de queue staat?

Re: Memory leak in sabnzbd 0.6.5

Posted: July 23rd, 2011, 1:20 pm
by sl1000
Getest met 0.6.3,4,5 daarbij trad het probleem op. De gebruiker wil persé zijn met pijn en moeite opgebouwde queue niet kwijt, dus dat heb ik nog niet kunnen testen helaas. Ik zal eens kijken of ik hem kan overtuigen te testen met een kleine queue.

verschijnsel na de "crash" is de noodzaak om de applicatie te herstarten, omdat de webinterface niet meer werkt.

sabnzbd die na een herstart begin met ongeveer 250mb en dan na 24 uur 800 mb geheugen gebruikt lijkt me toch niet helemaal fris hoor (helemaal gezien dat de nas maar 512mb beschikbaar heeft)

Re: Memory leak in sabnzbd 0.6.5

Posted: July 23rd, 2011, 1:53 pm
by shypike
512M en zo'n grote queue is nogal een uitdaging.
Zorg er vooral voor dat de "only get from top of queue" optie aan staat.

Verder kun je SABnzbd stoppen een een deel van de job folder tijdelijk verplaatsen.
Later kun je de jobs in een of meer keer terug plaatsen en
een wachtrij reparatie doen (de "orphans" weer toevoegen).
Je opgebouwde data blijft behouden.

Re: Memory leak in sabnzbd 0.6.5

Posted: July 23rd, 2011, 2:07 pm
by sander
sl1000 wrote:Getest met 0.6.3,4,5 daarbij trad het probleem op. De gebruiker wil persé zijn met pijn en moeite opgebouwde queue niet kwijt, dus dat heb ik nog niet kunnen testen helaas. Ik zal eens kijken of ik hem kan overtuigen te testen met een kleine queue.

verschijnsel na de "crash" is de noodzaak om de applicatie te herstarten, omdat de webinterface niet meer werkt.

sabnzbd die na een herstart begin met ongeveer 250mb en dan na 24 uur 800 mb geheugen gebruikt lijkt me toch niet helemaal fris hoor (helemaal gezien dat de nas maar 512mb beschikbaar heeft)
Jammer dat je geen foutmelding hebt. Ook nergens in /var/log/*? Als hij niet meer reageert, draait SABnzbd dan nog wel?

Een/twee jaar geleden heb ik een onderzoekje gedaan naar geheugenverbruik, inclusief grafiekjes: liep vlot op naar 600-700 MB. Ik had ook wat commando's gegeven hoe je het geheugengebruik kon limiteren. Hopelijk kan je het nog vinden in het forum.
Maar: maak je wel onderscheid naar virtueel en echt geheugen:

Code: Select all

top -n1 | grep -i -e user -e sabnzbd | cat

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                    
13037 sander    20   0  457m  50m 4572 S   14  1.3   5:02.96 SABnzbd.py      

Dus mijn SAB gebruikt 457MB virtueel geheugen, maar slechts 50MB echt geheugen. Tenminste: dat is voor zover ik het begrijp.


Je queue zit volgens mij in queue9.sab (in ~/.sabnzbd/admin/), dus als je daar een reservekopie van maakt, dan zit je goed.

Re: Memory leak in sabnzbd 0.6.5

Posted: July 23rd, 2011, 2:08 pm
by sander
shypike wrote:512M en zo'n grote queue is nogal een uitdaging.
Zorg er vooral voor dat de "only get from top of queue" optie aan staat.
is het dan een bekend verschijnsel dat SAB's geheugengebruikt toeneemt als je veel in de queue hebt staan? How come?

Re: Memory leak in sabnzbd 0.6.5

Posted: July 23rd, 2011, 2:14 pm
by shypike
Omdat toch voor iedere job enige admin in het geheugen staat,
weliswaar niet alles, maar toch.
Daarnaast kan het soms voorkomen dat (wanneer top-only uit staat) er
meer vooruit gelezen wordt en ook de artikel cache zwaarer gebruikt wordt.
Sowieso moet je een beetje voorzichtig zijn met een te grote cache als je
er het geheugen niet voor hebt.

Re: Memory leak in sabnzbd 0.6.5

Posted: July 23rd, 2011, 2:33 pm
by sander
Ah, de thread gevonden:

http://forums.sabnzbd.org/viewtopic.php?t=4713

En http://forums.sabnzbd.org/viewtopic.php ... =30#p34487 misschien nuttig: beperken van gebruikt geheugen

Re: Memory leak in sabnzbd 0.6.5

Posted: July 23rd, 2011, 5:26 pm
by sl1000
Bedankt jongens, ik ga even lezen en kijken wat ik er mee kan :)

Re: Memory leak in sabnzbd 0.6.5

Posted: July 23rd, 2011, 6:00 pm
by sl1000
shypike wrote:512M en zo'n grote queue is nogal een uitdaging.
Zorg er vooral voor dat de "only get from top of queue" optie aan staat.

Verder kun je SABnzbd stoppen een een deel van de job folder tijdelijk verplaatsen.
Later kun je de jobs in een of meer keer terug plaatsen en
een wachtrij reparatie doen (de "orphans" weer toevoegen).
Je opgebouwde data blijft behouden.
only get from top staat standaard aan. geen idee eigenlijk hoe ik een queue in stukjes kan ophakken en tijdelijk een deel ergens anders kan parkeren. Hoe doe ik dat?

Re: Memory leak in sabnzbd 0.6.5

Posted: July 23rd, 2011, 6:07 pm
by shypike
Maak een subfolder in "incomplete" en gebruik het "mv" commando om
folders daar tijdelijk naar te verhuizen.
Alleen folders uit "incomplete" halen wanneer SABnzbd niet draait!
Terug mag wel met een actieve SABnzbd.

Re: Memory leak in sabnzbd 0.6.5

Posted: July 23rd, 2011, 6:12 pm
by sl1000
ah, nooit geweten dat de queue op die wijze in incomplete wordt opgebouwd. Ik dacht altijd dat eenmaal ingelezen de informatie een database in ging...

Re: Memory leak in sabnzbd 0.6.5

Posted: July 24th, 2011, 3:27 am
by shypike
In 0.5.6 wel en dat was ook de oorzaak van veel problemen.
In 0.6.x wordt zoveel mogelijk in de job folder opgeslagen.