We have observed the following problem on our server. We are running
Java Web Server 2.0 on WinNT4.0 machine with Dual 933MHZ
PIII, 1GB Ram Dell Server.
The memory leaks happen every time, but the method of crash always seems to vary. Sometimes the service just stops responding. The only way to bring it back is to kill the jrew.exe process, stop the service, and start the
service. This works about 70% of the time.
Sometimes after restarting the service, JWS still doesn't respond until we go into the admin tool and change the web page service from stopped to started. This happens about 15% of the time. Sometimes jrew GPF's. I often have to reboot after this happens, but sometimes I can just stop and start the service and it comes back up. This happens about 10% of the time. The final 5% of the crashes are the most spectacular. This is where
the whole system stops responding, even to mouse movement. A hard reboot is the only solution here. But every time JWS crashes, there is never anything in the logs to give any clue as to what happened.
We have also observed that the memory gets allocated to jrew.exe in chunks ranging from 4K to 16K until it tops out at the maximum VM setting and throws exceptions. Surprising thing is that even while serving the html pages the above said chunk of memory is getting assigned to the jrew.exe. This process continues till the memory used by jrew.exe reaches allocated cache memory and then the problem reported in para 2 above starts.
we have allocated 750MB for Heap Memory and 384MB for cache memory.
I have even tried out using System.gc() in all the
servlets but there is no improvement at all.
Anyone have any ideas ? Thanks,
krishna