cancel
Showing results for 
Search instead for 
Did you mean: 

EM Memory not being fully utilised on Windows 2003 32 Bit

ecnirp
Explorer
0 Kudos

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.

Accepted Solutions (0)

Answers (4)

Answers (4)

manuel_garcia
Advisor
Advisor

Hi,

The main problem is that the system is running in an old Windows Server 2003 - 32 bit platform- where the address space is limited to 4 GB and only 2 GB (or 3GB if option is enable in boot.ini) of this is available for a work process .

The memory dump STORAGE_PARAMETERS_WRONG_SET happens because available address space in the server is exhausted when running a report/transaction.

First at all I would recommend to keep parameter PHYS_MEMSIZE as described in note 88416 and let the other memory parameters mentioned in the note to be set automatically to default values of zero administration memory management .

Then decrease the following memory parameters to get more memory available to execute programs/transactions in the system:

rdisp/PG_SHM 6000
rdisp/ROLL_SHM 6000

Also you can check that program buffer (parameter abap/buffersize) is set to a value lower than 500 MB to avoid too high consumption of shared memory in the server.

Matt_Fraser
Active Contributor

Wow, this one really brings back memories of trying to tune old 32-bit Windows systems.

Paul, I second Manuel's answer here: I think the PG_SHM and ROLL_SHM parameters are set too high. Also, yes, you are correct in your supposition that with the /3GB parameter set in Windows, only 3 GB of RAM will be available to each work process (as opposed to only 2 GB); the other 1 GB is reserved for the operating system's use (instead of 2 GB).

One question I have, though. I get that you can't upgrade the central system to a supported 64-bit OS at this time (presumably that time will come?), but is there any particular reason you can't use a newer 64-bit OS for the new dialog app server you're setting up here? I don't believe there's any reason the application server has to match the database server in all these respects, and since it's a new server you have options available to you.

Cheers,
Matt

manuel_garcia
Advisor
Advisor
0 Kudos

You can find information about possible combinations of SAP Kernel / DB /OS in 64 bit and 32 bit platforms in notes 308375 and

192822.

Take also into account that SAP only supports Windows 64-bit as guest operating system on WMWare.

ecnirp
Explorer
0 Kudos

Thanks for the responses, I will adjust the parameters as you advise Manuel.

Matt - It's been a while since I used 32 Bit also, Ive just started at a new company, so they have quite a few legacy systems like this, so I am, fighting a few fires to keep them going! I have also spoken to the application teams to try and educate the users to use more restricted reports/transactions, rather than putting * in ever field, run reports in Background etc, I have a new appreciation for X64 !!!

I could not find and specific documentation which showed the 64 Bit Application Servers were supported with a 32 Bit CI/DB on Enterprise 470, I was hoping adding the 32 Bit Application Server would be sufficient to deliver the performance improvement/reliability we require. So, if we installed the 64 Bit Application Server, we would just run the 64 Bit 640 Kernel on the APP Server?

I am just testing this setup on the QAS system, so it is good I have ran into these issues here, the WIndows 2003 Enterprise 32 Bit is just installed on VM Ware, so it would be no problem to install WIndows 2003 Enterprise X64 and install the 64 Bit Windows 2003 Enterprise Version.