If you have little free memory the JVM will use a lot of CPU cycles to free memory (==> Openfire gets very slow) and if this is not enough you’ll get also OutOfMemory errors (when creating a new socket some memory is needed, so new connections may fail - but also existing connections may be affected).