You didn’t specify how much total memory is allocated for java (92.7% of what? 256MB, 512MB, 1GB?), but looks to me like you are definitely running out of memory. the jumping from 92.7% to 66% and back and forth is likely the JVM performing rigerous Garbage Collection in an attempt to free memory and not crash. With such a large install base as you have described, I stand by my orignal statement that 4GB of physical host ram is not enough. To put it in perspective, my laptop has 8GB of ram and I usually consume more than 4GB just with my daily activities. My workstation at the office has 8GB of ram and I usually consume about 6GB’s after opening all my programs and what-not.
You have two options (I would recommend a combination of the two actually).
**1) Upgrade your host’s ram. **I would put in as much as you can, reasonably. It’s going to be difficult to speculate on exactly how much ram is enough, it depends on a lot of things. But I would at the very least double your ram, if not more.
**2) Tell java to allocate more memory to the JVM. **Typically you do this by modifying the boot parameters for openfire to specify how much memory the JVM starts out with, and now much it’s allowed to baloon up to.
Here’s a link to a discussion about this: http://community.igniterealtime.org/message/158384#158384
Here’s a guide: http://community.igniterealtime.org/docs/DOC-1033
Given you only have 4GB of physical host ram, I don’t think you will have much headroom to increase the java memory settings without causing other problems. However if you are not “in production” with this server yet and still have acceptable room for testing, you can try first increasing how much memory is allocated for java and see what happens. For example, if openfire is only allocated 256MB’s of java memory right now, and your server has 1GB of free ram, you can try increasing openfire’s java memory to 512MB’s or more and see what happens.
If that does not work, or you have no more free ram available to allocate to java, I would upgrade your host’s ram, then I would tell openfire to use more of it.