> Norman,
>
>> > I'm back to running a test.  Started JAMES
>> > with -server -Xms128M -Xmx256M -Xrunhprof heap=sites,depth=12
>
>> > If this will just run for 48-72 hours, hopefully I can gather
>> > some useful data.
>
>> let us see what the new debugging show us ;-)
>
>
> So far, I have a working hypothesis, but will continue to monitor the
> heap.
>
> We may be getting hit by the known-to-be-bad cache inside of InetAddress.
> After 12 hours or so, InetAddress cache related objects appear to be in
> excess of 20% of heap usage, and increasing.  From where?  It appears to
> be
> a single line in the SMTP handler that was changed in trunk, but not
> backported.
>
>   2.3.0:
>     remoteHost = socket.getInetAddress().getHostName();
>
>   trunk:
>     remoteHost = dnsServer.getHostName(socket.getInetAddress());
>
> The dnsServer call does:
>
>     public String getHostName(InetAddress addr){
>         try {
>             return org.xbill.DNS.Address.getHostName(addr);
>         } catch (UnknownHostException e) {
>             return addr.getHostAddress();
>         }
>     }
>
> which does not use the InetAddress cache.
>
> By the way, a bit of observation regarding garbage collection.  Because of
> the memstat instrumentation in RemoteManager, I can make sure to take heap
> dumps only and immediately after the JVM does a full GC.   And I can see
> that with 1.4.2_09 under load and with heap dumping on, it doesn't appear
> to
> GC at all until it must.  Asking for a GC under load doesn't often provide
> one, so it is good to know when one *does* happen.  When I want to dump
> the
> heap, I just keep watching for the full GC, and then I request the dump.
>
>       --- Noel
>
>
>

The Problem is that we need "many" changes to backport this.. And we
agreed that we ony want to backport "critical" stuff..

bye
Norman



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to