_mprosrv

beeworks

New Member
My partner have a problem with OpenEdge 10.1B. They assign “buffer memory” value for database start parameter with “-B”.
Their big potentialed customers start to use windows server 2008 and these customers licensed under CPU.
They have a situation for the customers which have over 300 users.

For 300 users, They assign 150 “_mprosrv” on server. For every “_mprosrv”, 2 users work in it. They assign “-B” parameter near about “50.000”.
For the database which is started with these parameters, Task Manager shows nearly 150 “_mprosrv.exe” are running and each of them uses 400-500 MB memory.

When they sum up all values, the total amount shows over the existing physical memory is used.

When Windows Server 2008 / Task Manager/Resourse Monitor shows that physical Memory %99 is used.

Is this situation normal or could we install a service pack or patch or apply any modifications.

I am waiting your response asap time. Thank you.
 

LarryD

Active Member
- How much physical memory is installed on the Windows Server box?

- What are the startup parameters for the database (you gave us -B, but there are likely to be more)

- What block size is the database? 4? 8?

- What are the startup parameters for the users in the parameter file (if used) and also on the command line?
 

TomBascom

Curmudgeon
You cannot meaningfully draw any conclusions from summing up the process size shown in task manager.

The memory allocated to -B is shared. There is a single copy of it which is mapped into each _mprosrv. From any individual _mprosrv processes perspective it has X RAM available. Most of that memory, however, is shared. For instance, if you have the default Windows db block size of 4k and -B is set to 50,000 then 200MB is shared memory for that db. If there are multiple connected databases then there will be multiple shared memory areas. Additionally many Windows libraries and components will be shared. The private memory usage of an _mprosrv instance is probably more like 20MB.

It is normal for 99% of RAM to be in use. Modern operating systems will find a use for every byte of physical memory in the system. The hard part is figuring out how it is actually being used.
 

beeworks

New Member
- How much physical memory is installed on the Windows Server box?

16 GB

- What are the startup parameters for the database (you gave us -B, but there are likely to be more)

-n 300 –Mp 150 –Mn 150 –Ma 2 –S 2510 –Mm 16384 –lkrela -pinshm -T C:\Temp -B 50000

- What block size is the database? 4? 8?

8K

- What are the startup parameters for the users in the parameter file (if used) and also on the command line?

-db trnakdb -N TCP -S 2510 -H 10.x.x.x -Mm 16384 -inp 15000 -tok 3500 -nolkctr -l 3072 -mmax 9072 -s 2550 -nb 255 -TB 31 -TM 32 -Bt 512 -nosavepoint -tmpbsize 1
 
-n 300 –Mp 150 –Mn 150 –Ma 2 –S 2510 –Mm 16384 –lkrela -pinshm -T C:\Temp -B 50000

remove -Mp
change -Ma 5 (default)
add -Mi 1
-T is a client parameter
 

TomBascom

Curmudgeon
Is there an actual problem?

-B 50,000 and an 8kb db block translates to just 400MB of shared memory. You have 16GB in the server so most of it is being wasted on file buffers.

If there is a performance problem I would probably start addressing it by increasing -B to 250,000 (roughly 2GB, which is the limit for a 32 bit process). I'd also start looking to an upgrade to 10.2 in order to have a 64 bit executable. Then you would be able to increase -B beyond 2GB.

I'd also be taking a good hard look at your storage areas. They should all be type 2 areas.
 
Top