on 07-10-2014 10:51 AM
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
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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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)
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.
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.
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.
User | Count |
---|---|
83 | |
24 | |
12 | |
9 | |
7 | |
6 | |
5 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.