[Mono-dev] [Mono-gc-list] Mono memory problems!
David Wolinsky
davidiw at ufl.edu
Wed Jul 18 11:44:03 EDT 2007
We've isolated the problem down to AutoResetEvent...
using System;
using System.Threading;
namespace Ipop {
public class IPOP_Common {
public static void Main() {
AutoResetEvent re = null;
while(true) {
re = new AutoResetEvent(false);
re.Close();
}
}
}
}
blows up memory
whereas ...
using System.Security.Cryptography;
using System;
namespace Ipop {
public class IPOP_Common {
public static void Main() {
RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
while(true) {
byte[] key = new byte[1024];
rng.GetBytes(key);
}
}
}
}
This doesn't.
David Wolinsky wrote:
> We run this software on system where memory is a concern. The data that
> we presented is our test case system that has 50 nodes all running in
> the same mono process. We run only a single node at each site which
> initially starts at ~15 MB, we've seen it swell to well over 300 MBs in
> a period of less than a week. Since this must be used in production
> environments and is meant to be extremely lightweight we can forgive a
> small memory portion like 15 MB, since it has relatively no processing
> overhead, but at over 300 MBs our processes are often stopped by the
> remote admin and we are told to clean up the problem.
>
> Since this seems to be a problem of using a non-compacting gc, do you
> know where the compacting gc is, so that we could at least test it out.
> I searched the SVN and found no clues of it.
>
> Also, I should correct myself, the results for memory consumption were
> not directly related to the test that grows at 25kB/sec. I found this
> out after posting the data, I am running heap-shot right now with the
> correct test and it has grown 100MB in less than 1 hour.
>
> Regards,
> David
>
>
>
> Alan McGovern wrote:
>
>> Well, after 12 hours at a consistent 25kB/sec, you'd expect to have
>> over 1 gig of memory allocated. As you don't, i think what you're
>> seeing is just 'normal usage' for the non-compacting GC that mono
>> uses. I have a similar app which uses sockets extensively (50-150
>> simultaneous connections) and i can assure you that memory usage
>> doesn't get unbearably large. It'd be interesting to see the logs but
>> i don't think there's much to be worried about.
>>
>> Alan.
>>
>> On 7/18/07, *David Wolinsky* <davidiw at ufl.edu
>> <mailto:davidiw at ufl.edu>> wrote:
>>
>> Initially 45 MB, 12 hours later 147 MB
>>
>> Another developer has the heap-shot logs, I'll post those as soon as
>> possible.
>>
>> David
>>
>> Alan McGovern wrote:
>> > Could you post up the detailed stats from heapshot? After the 12
>> hour
>> > run, how much memory are you using? Are we talking in the gigabyte
>> > range, or megabyte range?
>> >
>> > Alan.
>> >
>> > On 7/18/07, *David Wolinsky* <davidiw at ufl.edu
>> <mailto:davidiw at ufl.edu>
>> > <mailto:davidiw at ufl.edu <mailto:davidiw at ufl.edu>>> wrote:
>> >
>> > My lab works on a peer-to-peer network overlay and we've noticed
>> > recently significant memory issues. Some background...
>> >
>> > This application is constantly creating new objects and shortly
>> > thereafter deleting (removing reference to) them
>> > Using a sample run with 150 threads running...
>> > Mono on Linux has a growth rate of ~25 KB per second with a
>> base
>> > of 50MB
>> > (y = 25K *x + 50M)
>> > .NET on Windows stabilizes at 35 MB
>> >
>> > We ran heap-shot with Linux and found that in a 12 hour
>> period it
>> > reported this...
>> > start:
>> > objects: 58,823
>> > heap memory: 6,838,426 bytes
>> >
>> > end:
>> > objects: 59,925
>> > heap memory: 6,862,336
>> >
>> > We have run mono with GC_MAXIMUM_HEAP_SIZE and the memory size
>> > (RES) got
>> > significantly bigger than it.
>> >
>> > I have searched for the Compacting GC with no luck, we would
>> > really like
>> > to see if it would help our problem.
>> >
>> > The only operating system resources we're using are Sockets, but
>> > we use
>> > them VERY heavily!
>> >
>> > If anyone has any suggestions, we'd be open to test out
>> anything
>> > at this
>> > point!
>> >
>> > We are leaning towards an issue in unmanaged memory and
>> possibly a bug
>> > in mono.
>> >
>> > Best regards,
>> > David
>> >
>> >
>> > ps, I fwded this to gc and devel list because gc list looks
>> quite
>> > dead.... sorry for the duplication
>> > _______________________________________________
>> > Mono-devel-list mailing list
>> > Mono-devel-list at lists.ximian.com
>> <mailto:Mono-devel-list at lists.ximian.com>
>> > <mailto:Mono-devel-list at lists.ximian.com
>> <mailto:Mono-devel-list at lists.ximian.com>>
>> > http://lists.ximian.com/mailman/listinfo/mono-devel-list
>> >
>> >
>>
>>
>>
>
> _______________________________________________
> Mono-gc-list maillist - Mono-gc-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-gc-list
>
>
More information about the Mono-devel-list
mailing list