Openfire 3.6.4 - Java Out of Memory

Hello everyone,

this is the first message I post in this forum. I’m using Openfire to provide presence information to Voip clients. In my network there are 32 users connecting to the server. I’m using Openfire 3.6.4 on Gentoo 2.6.4 with sun-jre-1.6.0. I’m getting crazy because with few users and 1024mb of memory as max memory for the jvm (-Xmx1024m), the memory rapidly increases and the server goes out of memory in few hours. Opening the Heap Dump with nano I strangely saw lots of presence messages in memory sent by clients. Why the server stores them in memory? Anyone knows anything about this issue? I couldn’t get more information analyzing the Heap Dump through jhat…I’m not so concerened about Openfire Java API . I hope someone could help me! Thanks in advance.

p.s. I’m available to provide the heap dump and other information about my system to anyone who wants to help me.

Just attach the heap dump, maybe someone will take a look. How much ram does your server have? I think it takes all 1024, because you have specified them as available and JVM is usually taking all that you give. I suggest to make it less or leave at default. I maintain ~150 concurrent users (messaging only) with the default 64 setting.

Also, maybe this doc can be useful http://www.igniterealtime.org/community/docs/DOC-1033

I already saw the document but setting all the JVM parameters like there didn’t help. I have a Server with a 2.5 Ghz clock and 4GB of RAM memory. Such a behaviour it’s incredible with only 32 users!!! Does anyone know anything about the storage of presence messages?

Most of the information (presence as well) is held in a cache before being written to a db. Caches are stored in a memory. That’s because this is faster than doing a db read/write every time. Caches are flushed to a db on a timer. As i suggested, just attach your dump to your first message (if it isnt too big), also you can post here your Openfire errors.log

Which Cache? Is it possible to set some cache dimensions or timer properties to better the situation?

There is a number of caches with Presence, so i dont know which. Maybe this can help http://www.igniterealtime.org/community/docs/DOC-1673

It could be difficult to upload the heap dump…It is more than 500 Mb!! Is anyone available to receive it and give a look??

I can generate a limited dump (120 Mb). Can you give a look?

No. I know nothing about reading and understanding the dumps.

I generated another dump. If I open the dump file as a text file I can see the “body” of lots of presence messages stored in memory. Other visible textual information are info related to the web browser I use to login the admin console. What does it mean? Does anybody know why openfire mantains in memory lots of presence messages???