Thread stack Space
Generally, each HTTP thread uses about 1 MB of memory per thread. Check NSD stat section for number of HTTP worker threads configured on Domino server:


Using more than 40 worker threads for HTTP may not be necessary and taking up overhead memory that can be used for processing requests.

Domino HTTP Active Thread recommendationsexternal link

Setting "Optimize HTTP performance based on the following primary activity:" can also impact number of HTTP worker threads configured. Check that this is set to => "Advanced (Custom Settings)" in Server document – Internet Protocols tab – HTTP tab.

JVM
java.lang.OutOfMemoryError messages can be reported in Console when JVM memory has been exhausted.

Factors causing high memory usage in JVM could be:
Java heap size
Servlets
Java agents

Java heap size for JVM used by HTTP process can be increased through Notes.ini parameter JavaMaxHeapSize or HTTPJVMMaxHeapSize new in Domino 8.5.1. HTTP memory will be impacted in cases when Java heap size has been increased.

NSD log has Notes.ini section to check current settings for HTTP JVM.

Default for 32-bit of Domino:
HTTPJVMMaxHeapSizeSet=1
HTTPJVMMaxHeapSize=64M

Note: Domino (32-bit) on iSeries uses 1024M as default for HTTPJVMMaxHeapSize

Default for 64-bit of Domino:
HTTPJVMMaxHeapSizeSet=1
HTTPJVMMaxHeapSize=1024M

HTTPJVMMaxHeapSizeSet=1 new in Domino 8.5.2 maintains HTTPJVMMaxHeapSize value.

Troubleshooting Java agents, Admins can implement Java agent debug:
What is the significance of using the notes.ini parameter, debugshowjavaagenttid=1external link

Memcheck logs can be generated over period of time to track memory allocations and correlate with Java agent debug.

LotusScript

LotusScript memory currently found in a memory.dmp file. The “HTTP” process section has “LotusScript Memory Usage” section


Memory dumps can be generated over period of time to track memory allocations and correlate with agent debug.
How to automate the collection of memory dumpsexternal link