Memory issues with the Integrated ITS, Part I
Quite often there is no memory available to start a session via WEBGUI. What may cause this? How to check the current status from the Integrated ITS memory consumption? How solve this issue?
The issue: a new session cannot be started
One starts a web browser and tries to access the WEBGUI internet service, using a URL like:
The result is the message: “New session was refused due to memory bottleneck“:
More details can be found in the System Log, using transaction code SM21:
If one double click the ITS_P 027 error message, a new window is presented:
From the message in the web browser window, it is also possible to identify the instance, the system ID and the work process used for this attempt. In the case above, work process number 3 was used. The trace file dev_w3 shows the following information:
More than 80% of the memory is in use. In order to check the actual memory consumption in the Integrated ITS, transaction code SITSPMON should be used:
At a glance, two important information are available: the sum of sessions and templates memory consumption (red rectangle at the left side) and the memory available to the ITS (red rectangle at the right side). The value “64MB” comes from the profile parameter em/global_area_MB. What about the difference between the 64 MB and the (approximate) 20 MB consumed by the sessions and templates? Where are the remaining (approximate) 40 MB of memory? It is not consumed by the ITS! The profile parameter em/global_area_MB is not exclusive to the ITS. Other programs and applications can use this memory.
How to solve the issue?
The first note to use is SAP note 742048 (Integrated ITS, memory requirement in application server). It shows the calculation of the memory required for the SAP GUI for HTML work properly with a given number of sessions, languages and web browsers.
However, the values mentioned in the note are theoretical and based on the assumption that no other process is requiring pieces of memory that is set via parameter em/global_area_MB. In real environments a big part of em/global_area_MB is already used by other applications/tools/functions. So during tests and go live checks em/global_area_MB = 512 or even em/global_area_MB = 1024 and above is a far more useful setting. In other words, the correct approach is to use SITSPMON and tune the system according to the consumption observed. Eventually, a new application server ABAP will need to be used to cope with the demand.
You can also read the ITS Memory Consumption blog.