cancel
Showing results for 
Search instead for 
Did you mean: 

ASE displaying high %MEM in 'top'

Former Member
0 Kudos

Hi All

I have an ASE 15.7 dataserver running BW on Linux that (according to the network admin) is displaying very high memory usage.
This is causing memory swap to kick in. I can see dataserver is using on avg. 86.8% of memory and all the BWP_01_DIA_* is using a bit of memory as well. eg. BWP_01_DIA_W5, BWP_01_BTC_W32,

occasionally it spikes to over 100%, thus swap kicking in.

Is this normal behaviour? How does one check what is consuming the memory?

What %MEM as displayed in "top" on Linux is considered normal?

The environment details are:

Adaptive Server Enterprise/15.7/EBF 22779 SMP SP122 /P/x86_64/Enterprise Linux/ase157sp12x/3662/64-bit/FBO/Sat Apr 19 05:48:19 2014                      

top output:

PID       USER      PR  NI  VIRT  RES  SHR   S   %CPU %MEM  TIME+      COMMAND

55009   sybbwp    20   0   172g  163g  163g   S   209      86.2      14939:46  dataserver

54967   bwpadm   20   0   138g  201m 154m S    9          0.1        0:01.24     BWP_01_DIA_W12

3775     root          20   0   9412  1012   248    R    1         0.0        58:02.31   top

Accepted Solutions (1)

Accepted Solutions (1)

former_member182259
Contributor
0 Kudos

If you really only have 198GB of memory, then configuring ASE for 180GB of memory is probably too much.   ASE uses shared memory - which it attempts to lock - which means that all other processing - including file system caches - would have to fit in the other 18GB of memory.  This includes the Dialogs and other BW processes.   You likely need to reduce ASE down to probably 128GB of memory.

Even when the host is dedicated to the DBMS, we don't suggest allocating more than ~70-80% of physical memory to ASE as the OS needs quite a bit...with 198GB, 75% would be 150GB or so....so 180GB is definitely too much.   Toss SAP NW into the equation and you likely need a bit less and should aim for the 128GB range.....especially if BW is doing a lot of file based processing (e.g. loading from flat files) which could leverage the read-ahead buffers in the file system cache.

Former Member
0 Kudos

Thanks for the feedback guys

Jeff you where correct. the ASE memory was configured too high.
We have logged a CR to have this reduced to  MAX MEM:120GB from 180GB and PROCEDURE CACHE:30GB from 90GB

Kind regards

Jade

Former Member
0 Kudos

Final Update:

 

The memory usage has dropped considerably to 45% consistently.

 

After the ASE server was bounced there was no more swapping experienced and
problem seemed to have been solved.

 

BIG THANKS to everyone for their valuable input!

 

Kind regards

Jade

Answers (1)

Answers (1)

javier_barthe
Participant
0 Kudos

Hi Jade,

This memory issue depends on a few configs in ASE, please send us the output from this commands:

sp_configure 'max memory'

sp_configure 'allocate max shared memory'

sp_configure 'dynamic allocation on demand'

sp_configure 'total logical memory'

sp_configure 'total physical memory'

Check the ASE errorlog if there are messages indicating dynamic allocation of a new chunk of memory.

Its not desirable tha linux swap in, if you can prevent its better always.

Regards.

Javier.

Former Member
0 Kudos

Thanks Javier

Please find below the output as requested.

1> sp_configure 'max memory'
2> go
Parameter Name     Default    Memory Used Config Value   Run Value   Unit              Type              
max memory         102400     180000000   90000000       90000000    memory pages(2k)  dynamic           
(1 row affected)


1> sp_configure 'allocate max shared memory'
2> go
Parameter Name             Default     Memory Used Config Value  Run Value   Unit       Type              
allocate max shared memory       0           0            1         1        switch     dynamic           
(1 row affected)


1> sp_configure 'dynamic allocation on demand'
2> go
Parameter Name                 Default     Memory Used Config Value  Run Value   Unit     Type
dynamic allocation on demand    1           0            1              1        switch   dynamic           
(1 row affected)


1> sp_configure 'total logical memory'
2> go
Parameter Name        Default  Memory Used   Config Value  Run Value   Unit              Type
total logical memory  102400   175851276     87925638      87962128    memory pages(2k)  read-only         
(1 row affected)


1> sp_configure 'total physical memory'
2> go
Parameter Name        Default  Memory Used   Config Value  Run Value   Unit              Type
total physical memory      0   180000000     0             90000000    memory pages(2k)  read-only         
(1 row affected)

javier_barthe
Participant
0 Kudos

Jade,

You have the server configured to allocate max shared memory on startup.

How much memory do you have in you system? ASE its configured to allocate 180000000 kb of memory.

BTW, How long since the last time do you reboot ASE and Linux?

Be carefull when backupserver executes, there you may have swapin. The memory used by backupserver its in -m parameter in RUN_BS. Perhaps linux admin can tell you the hour of the day that you have lot of swap in and then you may see if there is an special task schedule at this hour.

Regards.

Javier.

Former Member
0 Kudos

Thanks Javier

Would you suggest we turn off the max shared memory setting to 0?

The total memory on the machine is 198GB of which 180GB has been allocated to ASE.


We had a reboot more than 10 days ago. The procedure cache size hit 98% so we had an emergency shutdown.

The 100% peaks are random but have gotton progressivly worse over the last week.

We have run update statistics and update index statistics a few times on some large tables during the week. Not sure if that had an impact on the system.

The backup server is configured to dump every 15minutes.

javier_barthe
Participant
0 Kudos

Jade,

I look after the difference between total logical memory and total phyisical memory and its quite low so turning of this setting will not offer you any changes to this behaviour.

98% of cache hits its quite common if you run intensive manteinance tasks, be aware of it. I don´t consider shutdown as a recommended action in this situation.

dump transaction log every 15 minutes right? Perhaps you are having more activity on each database so these activity its consuming you more memory.

Based on the information you send me I don´t think that ASE its causing the system to swap in. Perhaps you can reduce the max memory a bit in order not to have these situation. Look after usser connections, or metadata cache objects (objects,indexes,partitions,etc) if monitorconfig shows very low usages you can reduce it and locks are other object that consumes lots of memory.

I hope this help.

Regards.

Javier.