We’ve been suffering from various http memory related issues. We run on Solaris and Domino on Solaris is 32bit (and apparently staying this way). So despite having 64GB of memory in our servers, we’re constrained by the 4GB shared memory limit.
The issues seem to relate to Java. At various times agents stop working due to memory issues. Despite going through every Java agent with a fine tooth comb, the issues still re-occur. Increasing the Java pool size doesn’t help because this causes a different issue. Because we allow staff to upload files up to 45MB in size, we get file upload issues as the memory fragments and Domino cannot assign a contiguous memory block. (Setting our one 8.5 server to use the ‘buffer’ doesn’t appear to work either).
The problem has been with Lotus for some considerable time and we’ve been going though the process of adding more and more debug information. These settings are generating GBs of logs every week. So far Lotus Support have been unable to pinpoint which agent is causing the memory leak.
For the last two weeks we’ve been running with some new settings suggested by Lotus Support. The new settings corresponded to a peak period, end of Semester A exams. Despite the increased load, both servers have running without memory issues for the full week between backups. So I thought I’d share the settings:
The HTTP setting is the important one as we don’t use our Domino setup for email, and seems to move the http process out of the shared memory heap and therefore allows us to increase the Java heap without side effects. It would be nice to have more information as to what this setting means. For example, how much memory can the HTTP server consume? Is it the full 32 bit address space? Hopefully somebody at Lotusphere will know. But it does seem to be an incredibly useful setting that could be enabled by default on 32bit Domino servers with large amounts of memory.