aMule Forum

English => en_Bugs => Topic started by: skolnick on March 12, 2005, 01:31:00 AM

Title: Too high memory usage
Post by: skolnick on March 12, 2005, 01:31:00 AM
Hi all!

I've been happily using my solaris computer with amule. So far, no crashes at all. I just compiled CVS from March 10 2005, it worked right, as expected. But after 24 hours of running, memory usage was 188MB, and it brought the computer to a whole crawl (190MB physical RAM, 300MB swap). Only two downloads in progress, and three completed files. Nothing that could produce such a high memory usage. Only thing was, the two downloading files stopped due to lack of free space, but that should be normal, so only uploading, no downloads at all.

Another interesting bug/feature I found is that, when downloading, if amule starts downloading the last chunk of the file, it won't allocate the full file space on the hard disk like emule does, but only the effective used space, which led me to believe I had more free space, and therefore the stopping of the downloads. Is this a solaris issue, aMule issue, or is by design?

Thanks.
Title: Re: Too high memory usage
Post by: Xaignar on March 12, 2005, 11:37:30 PM
Ok, the high memory usage is odd and will have to be investigated. As for the fact that aMule uses sparse allocation is known, it's simply because no-one has implemented pre-allocation in aMule. Is there any specific need for this? The only thing I could imagine would be to reduce fragmention, but beyond that I can't see any need.
Title: Re: Too high memory usage
Post by: skolnick on March 13, 2005, 04:49:36 AM
Quote
Originally posted by Xaignar
Ok, the high memory usage is odd and will have to be investigated. As for the fact that aMule uses sparse allocation is known, it's simply because no-one has implemented pre-allocation in aMule. Is there any specific need for this? The only thing I could imagine would be to reduce fragmention, but beyond that I can't see any need.
In my case, I think it is needed, since my hard drive is always almost-full, so allocating the whole filesize at once, prevents my downloads to become suddenly stopped. It could be an option, like emule does, but AFAIK, emule only implem,ents sparse files on NTFS (no idea why) so allocating full space is the default behavior.

Thanks.
Title: Re: Too high memory usage
Post by: Xaignar on March 13, 2005, 12:31:10 PM
That's because FAT32 doesn't support sparse files, only NTFS does. ;)
Title: Re: Too high memory usage
Post by: skolnick on March 13, 2005, 05:18:05 PM
So that's why I never saw that effect on my current computer, because of FAT32 on my incoming/temp folders, but the solaris machine saves to a UFS filesystem, which *should* support sparse files, since I've seen this effect there...intresting ;)

Thanks for the explanation...and if possible, adding the togge switch for this option would be cool.
Title: Re: Too high memory usage
Post by: Kry on March 13, 2005, 06:21:50 PM
The switch is there. The functionality is not :P
Title: Re: Too high memory usage
Post by: skolnick on March 14, 2005, 01:39:54 PM
Hmm...Ok, so the switch is no problem. I would even trade it :) for a really nice entry in the statistics tree telling me:
- Space available
- Space still nedded for my downloads to grow
- Space I need to free (if any)
Just like emule's!

Regards.
Title: Re: Too high memory usage
Post by: Arichy on August 20, 2005, 12:29:48 PM
Quote
Originally posted by Xaignar
Ok, the high memory usage is odd and will have to be investigated.

Same problem with too high memory usage:

I hav a pentium mmx, with 166 MHz and 92 MB RAM.
Running debian sarge with only vncserver and therein amule-cvs-20050816
(no other special applications or services)

After starting starting in the first 24h, memory usage is constantly 52 MB of 92 MB RAM and 4 MB of 98 MB swap.

But after some (e.g. four) days, RAM is over 90% and swap usage is 50%.

Then the computer gets slow and finally vncserver and/or amule crashes.

Sometimes there are mem alloc failures in syslog, sometimes there are no failures logged.
Last time, vncserver just exited, with amule still running as a process (but i needed to kill it either, because there was no display anymore).
Title: Re: Too high memory usage
Post by: Mr Faber on August 20, 2005, 02:35:27 PM
Try amuled, it is amule without a gui so it doesn't consume as much memory and cpu. You can manage amuled through amulecmd, a small console, amuleweb, a webinterface, and the remote gui which looks equal to normal aMule but some functions still aren't integrated.
By the way vnc isn't needed anymore :) .

cu
Mr Faber
Title: Re: Too high memory usage
Post by: Arichy on August 22, 2005, 06:36:25 PM
Quote
Originally posted by Mr Faber
Try amuled...

I am happy with monolithic amule in vncserver, I do not want to use something different.

Problem is not the memory or cpu usage, but the increasing memory usage (there seems to be a memory leak, as written in another thread)
Title: Re: Too high memory usage
Post by: thedude0001 on August 25, 2005, 11:50:39 AM
Which GTK version does your wxGTK use? There's a logline at amule startup like this:
Code: [Select]
2005-08-24 05:46:01:  - This is aMule CVS using wxGTK1 v2.6.1 (Snapshot: r5326) based on eMule.
Please paste it here.
Title: Re: Too high memory usage
Post by: Arichy on August 25, 2005, 12:07:22 PM
Quote
Originally posted by thedude0001
Which GTK version does your wxGTK use?
Please paste it here.

Code: [Select]
Dies ist aMule CVS using wxGTK1 v2.6.1 (Snapshot: Tue Aug 16 07:02:05 CEST 2005), basierend auf eMule.
Title: Re: Too high memory usage
Post by: Arichy on September 09, 2005, 12:53:18 PM
aMule was killed again due to memory problems, it seems, after running 36h.

Here the /var/log/messages:
Code: [Select]
Sep  9 02:26:41 localhost -- MARK --
Sep  9 02:33:46 localhost kernel: __alloc_pages: 0-order allocation failed (gfp=0x1d2/0)
Sep  9 02:33:46 localhost kernel: __alloc_pages: 0-order allocation failed (gfp=0x1d2/0)
Sep  9 02:33:46 localhost kernel: VM: killing process addr2line
Sep  9 02:33:46 localhost kernel: __alloc_pages: 0-order allocation failed (gfp=0x1f0/0)
Sep  9 02:33:46 localhost kernel: __alloc_pages: 0-order allocation failed (gfp=0x1d2/0)
Sep  9 02:33:46 localhost last message repeated 2 times
Sep  9 02:33:46 localhost kernel: VM: killing process xfce4-panel
Sep  9 02:33:46 localhost kernel: __alloc_pages: 0-order allocation failed (gfp=0x1d2/0)
Sep  9 02:33:46 localhost kernel: __alloc_pages: 0-order allocation failed (gfp=0x1f0/0)
Sep  9 02:33:51 localhost kernel: __alloc_pages: 0-order allocation failed (gfp=0x1d2/0)
Sep  9 02:33:51 localhost last message repeated 3 times
Sep  9 02:33:51 localhost kernel: VM: killing process addr2line
Sep  9 02:33:53 localhost kernel: __alloc_pages: 0-order allocation failed (gfp=0x1d2/0)
Sep  9 02:33:56 localhost last message repeated 2 times
Sep  9 02:33:56 localhost kernel: VM: killing process addr2line
Sep  9 02:33:56 localhost kernel: __alloc_pages: 0-order allocation failed (gfp=0x1d2/0)
Sep  9 02:34:00 localhost last message repeated 6 times
Sep  9 02:34:00 localhost kernel: VM: killing process addr2line
Sep  9 02:34:00 localhost kernel: __alloc_pages: 0-order allocation failed (gfp=0x1d2/0)
Sep  9 02:34:00 localhost kernel: VM: killing process addr2line
Sep  9 02:34:00 localhost kernel: __alloc_pages: 0-order allocation failed (gfp=0x1f0/0)
Sep  9 02:34:13 localhost kernel: __alloc_pages: 0-order allocation failed (gfp=0x1d2/0)
Sep  9 02:34:13 localhost last message repeated 2 times
Sep  9 02:34:13 localhost kernel: VM: killing process amule
Sep  9 02:34:14 localhost kernel: __alloc_pages: 0-order allocation failed (gfp=0x1d2/0)
Sep  9 02:34:16 localhost last message repeated 4 times
Sep  9 02:34:16 localhost kernel: VM: killing process Xrealvnc
Sep  9 02:34:16 localhost kernel: __alloc_pages: 0-order allocation failed (gfp=0x1d2/0)
Sep  9 02:34:16 localhost kernel: VM: killing process addr2line
Sep  9 02:34:16 localhost kernel: __alloc_pages: 0-order allocation failed (gfp=0x1d2/0)
Sep  9 02:34:16 localhost kernel: __alloc_pages: 0-order allocation failed (gfp=0x1f0/0)
Sep  9 02:46:42 localhost -- MARK --
Sep  9 03:06:42 localhost -- MARK --

This problem limits the usability of amule very much, a solution would be very nice...
Title: Re: Too high memory usage
Post by: stefanero on September 09, 2005, 01:33:57 PM
restart it!?
as long as we dont find the memleak I see no other option then restart amule every 24-36h maybe...
I know its not the sollution you want but as long as we dont find the memleaks I see no other way atm.
 
you could try amuled which is much better with mem, but if you dont want to....
Title: Re: Too high memory usage
Post by: Kry on September 09, 2005, 02:52:09 PM
Try with wxCVS
Title: Re: Too high memory usage
Post by: Arichy on September 18, 2005, 10:33:28 PM
Quote
Originally posted by Kry
Try with wxCVS

Using newer wx-gtk seems to be the solution.

I have compiled wx-cvs-gtk from 2005-09-09 and aMule-CVS from 2005-09-06.

aMule is now running for five days.

In the first some ten hours the memory and swap usage increased, but then it got stable at 82 of 92 MB RAM and 47 of 94 MB swap.
Title: Re: Too high memory usage
Post by: Arichy on September 19, 2005, 09:12:58 AM
I have to revoke my posting from yesterday.

As I see, aMule crashed just 30 Minutes after my posting yesterday, at 23:03.

There is just one error line in /var/log/messages:
Code: [Select]
Sep 18 23:03:20 localhost kernel: __alloc_pages: 0-order allocation failed (gfp=0x1d2/0)
After automatic restart at 23:04 (script), aMule is running faster again.

Memory usage is now (09;15) 63 MB RAM (of 92 MB) and 45 MB swap (of 94 MB).
Title: Re: Too high memory usage
Post by: Arichy on September 20, 2005, 06:14:46 AM
aMule crashed again after 17h running.

No messages on that in /var/log/messages or /var/log/syslog
Title: Re: Too high memory usage
Post by: phoenix on September 22, 2005, 04:31:28 AM
This is probably a leak in either aMule or wx. As you use few RAM, the leak is more serious in your system.
Title: Re: Too high memory usage
Post by: zekkerj on September 23, 2005, 08:34:47 AM
Hi all, same problem here.

aMule starts smoothly, after a few days it eats all of my available memory. ;(

Output of "amule --version":
Quote
aMule 2.0.3 using wxGTK2 v2.5.4 (OS: Linux)

Celeron 1GHz,
RAM 256MiB
Swap 265MiB

Output of "uname -a":
Quote
Linux ithilien.casa 2.6.11-72032U10_17clcustom #1 Tue May 3 21:29:30 BRT 2005 i686 unknown unknown GNU/Linux

Is there any debugging switch I can use to build a trace of memory allocation?
Title: Re: Too high memory usage
Post by: Kry on September 23, 2005, 11:54:07 AM
Use wx 2.6.2
Title: Re: Too high memory usage
Post by: zekkerj on September 23, 2005, 10:52:12 PM
Geeeeez, another recompile...  :))
Title: use valgrind
Post by: lupz on September 25, 2005, 09:06:53 PM
if you can't find the memory leak, who has a powerful machine to keep up an amule istance two days using valgrind ?
Valgrind (http://valgrind.org/)
Code: [Select]
valgrind --leak-check=full /path/to/amule
valgrind --tool=addrcheck --leak-check=full /path/to/amule (it's about twice faster but less accurate)
it will find a lot of leaks

the machine on which it runs, should have a powerful processor and *a lot* of RAM

it runs about 10 times slower than the real thing.. but on exit it reports all the memory that the software has wasted with the backtrace of the call that lost it!
Title: Re: Too high memory usage
Post by: Kry on September 25, 2005, 09:32:49 PM
It's already fied on wx2.6.2, read some posts above. It was not aMule.
Title: Re: Too high memory usage
Post by: lupz on September 25, 2005, 10:47:26 PM
Quote
Originally posted by Kry
It's already fied on wx2.6.2, read some posts above. It was not aMule.
I suspected something like that because on my run on valgrind a lot of wasted space resulted from lost references of wxStringBase objects.

I've compiled over wx 2.6.2 but it crashes on start some nigthly ago.. i'll try again with tomorrow build
Title: Re: Too high memory usage
Post by: Arichy on October 01, 2005, 02:06:04 PM
Because wx-gtk CVS from 2005-09-09 did not help, I fell back on aMule 2.0.3 from the dude.gemil.de Debian packages.

With that, there are nor memory problems, only 50% usage, stable.
Title: Re: Too high memory usage
Post by: Arichy on October 26, 2005, 05:10:58 PM
Quote
Originally posted by Kry
It's already fied on wx2.6.2, read some posts above. It was not aMule.

Still problems:

With aMule-CVS-2005-10-22 source code from amule homepage compiled with libwxgtk 2.6.2-1 from dude.gemil.de debian package repository the memory gets eaten up (from 47 to 77 MB of 92 MB RAM in 48h, then slower decreasing free memory until crash after some days).

With aMule-2.0.3 source code from amule homepage compiled with the same libwxgtk 2.6.2-1 from dude.gemil.de debian package repository the memory usage is stable low at 32 MB of 92 MB RAM.
Title: Re: Too high memory usage
Post by: Kry on October 26, 2005, 09:17:12 PM
It's CVS. Might have leaks.
Title: Re: Too high memory usage
Post by: Arichy on December 02, 2005, 09:38:12 AM
Quote
Originally posted by Kry
It's CVS. Might have leaks.

Unfortunately, it seems to have leaks indeed:

aMule-CVS from 2005-11-30 (self compiled) with wxgtk 2.6.2 package from dude.gemil.de on Debian Sarge (Kernel 2.4.27):

After 36h running:
80 MB of 92 MB RAM used
73 MB of 94 MB Swap used

Computer awfully slow (no much time and it will crash I think)

Greets, Arichy

PS Do not have a powerful computer for using valgrind (it is an Pentium III).
If there is another possibility for me to help You, please tell me.
Title: Re: Too high memory usage
Post by: Xaignar on December 02, 2005, 01:26:57 PM
Can you run "amule --version" and paste the output?
Title: Re: Too high memory usage
Post by: Xaignar on December 02, 2005, 02:16:58 PM
Also, by any chance, do you have the Extended UDP-port disabled? Cause I just found that the UDP port would leak if packets were queued and they wern't ready.
Title: Re: Too high memory usage
Post by: Arichy on December 02, 2005, 02:26:39 PM
Quote
Originally posted by Xaignar
Can you run "amule --version" and paste the output?

aMule CVS using wxGTK1 v2.6.2 (Snapshot: Wed Nov 30 07:01:58 CET 2005) (OS: Linux)

Extended UDP port is not deactivated.
Title: Re: Too high memory usage
Post by: Arichy on December 06, 2005, 11:53:46 AM
I moved my good old ~/.aMule/ away and started the same amule (cvs-2005-11-30 with wxgtk 2.6.2) fresh. Then i configured it as before.

Especially I configured the old temp directory and restarted amule, so I had the same download queue as before (when amule froze because of lack of memory).

It is now running for 60 hours and the memory usage is stable at 40-50 MB (sometimes it gets up to 50 and then decreases again).

Could this be the soulution? I will keep it running and see. Would be nice.
Title: Re: Too high memory usage
Post by: Arichy on December 08, 2005, 09:44:26 PM
After five days running amule-cvs-11-30, the system is now constantly on 100% cpu usage and amule has crashed.

I did a search query at the morning today, when amule did run fine.
After the output log of that query the amule output on the console was:

Code: [Select]
Invalid Kad tag; type=0x72 name=0x00
Error on CKademliaUDPListener::processPublishRequest received from: 152.122.60.8
4:4672
No ip match
Invalid Kad tag; type=0x2b name=0x00
Error on CKademliaUDPListener::processPublishRequest received from: 102.194.184.
83:4672
No ip match

--------------------------------------------------------------------------------
A fatal error has occurred and aMule has crashed.
Please assist us in fixing this problem by posting the backtrace below in our
'aMule Crashes' forum and include as much information as possible regarding the
circumstances of this crash. The forum is located here:
    [URL]http://forum.amule.org/board.php?boardid=67[/URL]
A fatal error has occurred and aMule has crashed.
Please assist us in fixing this problem by posting the backtrace below in our
'aMule Crashes' forum and include as much information as possible regarding the
circumstances of this crash. The forum is located here:
    [URL]http://forum.amule.org/board.php?boardid=67[/URL]
    If possible, please try to generate a real backtrace of this crash:
        [URL]http://www.amule.org/wiki/index.php/Backtraces[/URL]


----------------------------=| BACKTRACE FOLLOWS: |=----------------------------
Current version is: aMule CVS using wxGTK1 v2.6.2 (Snapshot: Wed Nov 30 07:01:58
 CET 2005)
Running on: Linux 2.4.27-2-386 i586

 --------------------------------------------------------------------------------
 A fatal error has occurred and aMule has crashed.
 Please assist us in fixing this problem by posting the backtrace below in our
 'aMule Crashes' forum and include as much information as possible regarding the
 circumstances of this crash. The forum is located here:
     [URL]http://forum.amule.org/board.php?boardid=67[/URL]
     If possible, please try to generate a real backtrace of this crash:
         [URL]http://www.amule.org/wiki/index.php/Backtraces[/URL]

 ----------------------------=| BACKTRACE FOLLOWS: |=----------------------------
Current version is: aMule CVS using wxGTK1 v2.6.2 (Snapshot: Wed Nov 30 07:01:58
 CET 2005)
Running on: Linux 2.4.27-2-386 i586

amule has not exited, it shows a grey and white window.

Memory usage is currently 65 of 92 MB, Swap usage 59 of 94 MB, that is probably not too much.

Attached the output-log of the command "free -m -t | grep --invert-match Mem", invoked every 15 Minutes since amule start. Only thing I recognized there is that on 2005-12-08 (today) at 13:30 there is a jump of memory usage from 39 to 26 MB and swap usage from 47 to 66 MB.

amule was started on 2005-12-03 at 23:42

Machine is Pentium MMX with 166 MHz.

I will now start amule with gnu debugger for a real backtrace.
Title: Re: Too high memory usage
Post by: Arichy on December 22, 2005, 07:05:17 PM
cvs 2005-12-17 runs for five days now without memory leaking.

I think Kry marked the relating bug in tracker as resolved. Thanks.

I wish all a nice christmas time.
Title: Re: Too high memory usage
Post by: Kry on December 22, 2005, 08:24:56 PM
Same for you :)