[Mono-dev] [Mono-gc-list] Mono memory problems!
David Wolinsky
davidiw at ufl.edu
Wed Jul 18 11:49:29 EDT 2007
FYI, this case is only triggered when using gmcs and not mcs.
David
David Wolinsky wrote:
> 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