Skip to Content
0
Jun 19, 2018 at 10:48 AM

EM Memory not being fully utilised on Windows 2003 32 Bit

246 Views

Hi

We have a Production SAP R/3 Enterprise 470 running on SAP Basis 620, Windows 2003 Standard Edition 32 Bit, with 4 GB RAM, the DB is Oracle 10.2.0.4, Kernel 640 PL 347, all on 1 host Server.

We have recently ran into performance issues where were processes are dying and not restarting after using large amounts of memory, the only way to fix this is to restart the server and SAP.

Due to project commitments we cannot upgrade the system, as this is WIndows 2003 Standard Edition, we are limited on memory and can only use 4GB on the Server.

To improve performance, I am trying to add an Application Server on a Seperate Windows 2003 Enterprise Edition 32 Bit which has 16GB Memory 20GB (initially 12GB) Paging, we have set the boot.ini switches to use the 16GB memory and 3GB per WP:

/PAE /3GB

on this new Server, I have installed SAP Application Server, the Application Server Starts ok with Kernel 640 PL 347

When testing on the Application Server, I have noticed the full Extended Memory is not being used. I have removed PHYS_MEMSIZE from the Instance profile and it has defaulted at 15359

I have set em/initial_size_MB = 4000

The remaining paramneters are set to use 2GB EM then 2GB HEAP:

Roll, extended and heap memory EXTM
ztta/roll_area 2000000 Byte Roll area per workprocess (total)
ztta/roll_first 1 Byte First amount of roll area used in a dialog WP
ztta/short_area 1600000 Byte Short area per workprocess
rdisp/ROLL_SHM 32768 8 kB Part of roll file in shared memory
rdisp/PG_SHM 16384 8 kB Part of paging file in shared memory
rdisp/PG_LOCAL 150 8 kB Paging buffer per workprocess
em/initial_size_MB 4000 MB Initial size of extended memory
em/blocksize_KB 1024 kB Size of one extended memory block
em/address_space_MB 512 MB Address space reserved for ext. mem. (NT only)
ztta/roll_extension 2000000000 Byte Max. extended mem. per session (external mode)
abap/heap_area_dia 2000000000 Byte Max. heap memory for dialog workprocesses
abap/heap_area_nondia 2000000000 Byte Max. heap memory for non-dialog workprocesses
abap/heap_area_total 2000000000 Byte Max. usable heap memory
abap/heaplimit 40000000 Byte Workprocess restart limit of heap memory
abap/use_paging 0 Paging for flat tables used (1) or not (0)

But when I run a transaction like SE16N on VBRK, the full EM memory is not buing used before I get a Shortdump:

STORAGE_PARAMETERS_WRONG_SET

Set the system profile parameters
- abap/heap_area_dia
- abap/heap_area_nondia
to a maximum of 860495616. Then reduce the value by 10.000.000 to be on
safe side
.

Then restart the SAP System.

but the System Parameters are already set higher than the shortdump failure:

abap/heap_area_dia 2000000000 Byte Max. heap memory for dialog workprocesses
abap/heap_area_nondia 2000000000 Byte Max. heap memory for non-dialog

ST02 is showing a Max EM of 548MB used of 4GB available

STAD is Showing

Total memory used 844.509 kB
Max. memory used in roll area 101.231 Bytes
New allocated paging memory 0 kB
Max. extended memory used
In transaction 382.804 kB
In dialog step 381.784 kB

Extended memory in use 4.083 kB

Private memory in use 840.327 kB
Workprocess in PRIV mode Yes
Workprocess restarted Yes

It looks to me like only 382MB of EM is being used, then 840MB oh HEAP(PRIV), then the transaction fails at around 1.2GB.

But the Application Instance is set to use 2GB EM then 2GB Heap per DIA session, which is 4GB in total, but with the /3GB I guess it would use 3GB? Only I am on the new Application instance, so no one else is using memory and ST02 shows 4GB Memory available, and when this is used it should extend by PHYS_MEMSIZE/2.

I have experimented by removing em/initial_size_MB and letting SAP set it, but this was failing to start on the Page size, so I inceased page to 20GB (2 * 8GB files + 1 4GB file), but I get the same behaviour with EM not being used beyond 380MB, so I put it back to 4GB.

I have also tried increasing em/address_space_MB from 512 to 2000 to match EM Size, but then the Instance failed to start due to:

<EsNT> Memory Reset disabled as NT default
*** ERROR => <EsNT> NTGetBaseAddress failed, no free region [esnti.c 1203]
*** Error 15 while initializing OS dependent part.
*** ERROR => DpEmInit: EmInit (1) [dpxxdisp.c 8610]
*** ERROR => DpMemInit: DpEmInit (-1) [dpxxdisp.c 8549]
*** DP_FATAL_ERROR => DpSapEnvInit: DpMemInit
*** DISPATCHER EMERGENCY SHUTDOWN ***
increase tracelevel of WPs
*** ERROR => DpWpKill: illegal pid (-1,5) [dpxxtool.c 2419]

So I reset back to 512 and then the Instance started ok.

Are there any other memory parameters I need to set to fully use the 2GB EM per WP? I am more used to Windows X64, where I have never ran into this problem befores.

Thanks for any assistance.