we are using ver 12.0.1 build 3894 on AIX 7.1. we are encountering "Out of Memory" error when we try to run the backup event ? what could be the reason?
This Sybase-IBM whitepaper discusses how to properly configure memory usage for ASE and AIX. ASE is in no way related to SQL Anywhere, but the paper does discuss how to configure AIX so it may be a good starting point. http://www-03.ibm.com/support/techdocs/atsmastr.nsf/WebIndex/WP101429
A long time ago, SA just allocated the cache using the system allocator (malloc) and, given the ugly details in the link provided above, that limited the server to 256MB of memory (cache + everything else included). We switched to using mmap of /dev/null instead which doesn't eat up the one precious memory segment that AIX provides by default.
That said, if for some reason the database server needs to allocate more than 256MB of memory outside of the cache then you will hit that default OS configuration limitation again. Backups in v12 use large external buffers for parallel IO but 256MB sounds much too large. They might just be pushing you over the edge. The link above shows a way of monitoring how much memory is in use in the limited 'segments' and how to add more segments.
thanks john .
BTW i understand from sybase support document that this bug has been fixed in the SQL Anywhere 12.0.1 build 3740.but still i am wondering why is it happening even i have upgraded to 3894.
This Sybase-IBM whitepaper discusses how to properly configure memory usage for ASE and AIX. ASE is in no way related to SQL Anywhere, but the paper does discuss how to configure AIX so it may be a good starting point. http://www-03.ibm.com/support/techdocs/atsmastr.nsf/WebIndex/WP101429
What is your cache size (-c and -ch switch if specified)? How much swap space do you have configured on your system and how much is free?
The values are as follows -c 256M -ch 1G swap space = 10 G and 100% free
FYI it's a holiday Monday here so you may not get a reply right away.
Good to know - out of
memoryoffice:)Well, lack of swap space was my best guess; however, I did find a reference to certain AIX OS-defined, memory-related defaults that can be problematic: http://publib.boulder.ibm.com/tividd/td/ITAME/GC32-0846-00/en_US/HTML/am39_perftune11.htm
A long time ago, SA just allocated the cache using the system allocator (malloc) and, given the ugly details in the link provided above, that limited the server to 256MB of memory (cache + everything else included). We switched to using mmap of /dev/null instead which doesn't eat up the one precious memory segment that AIX provides by default.
That said, if for some reason the database server needs to allocate more than 256MB of memory outside of the cache then you will hit that default OS configuration limitation again. Backups in v12 use large external buffers for parallel IO but 256MB sounds much too large. They might just be pushing you over the edge. The link above shows a way of monitoring how much memory is in use in the limited 'segments' and how to add more segments.
thanks john . BTW i understand from sybase support document that this bug has been fixed in the SQL Anywhere 12.0.1 build 3740.but still i am wondering why is it happening even i have upgraded to 3894.
To which Sybase support document are you referring?