question about Rep Agent, 'memory_limit' and message
Having Warm Standby pair ASE to ASE I'm getting this error :
45. WARNING #7038 REP AGENT(dba.machi) - de/generic/mem/mem.c(2763)
WARNING: Memory usage is above 80 percent. Increase 'memory_limit' or reduce cache sizes to avoid repserver threads from sleeping due to lack of memory.
- This means that I should increase memory_limit in RS ? ( surely)
- What caches are supposed to be reduced .? This message is kind of confusing..
Terry Penna replied
I apologize that the warning message is confusing let me try and help clear up some of the confusion?
You are correct that the warning message is telling you that the RS is close to exceeding its memory_limit and that you should increase it if necessary. It may hit this briefly and you will be okay or it may continue and the RS will either stop replicating or it could shutdown? In a lot of cases your host should have enough RAM and you can increase the parameter. In other cases RAM is limited on your host which brings me to the second part of the message.
This is the suggestion to reduce 'cache sizes', this means any RS parameter that uses memory from the memory_limit. This could be sqt_max_cache_size, dsi_sqt_cache_size, dist_sqt_max_cache_size, sts_cache, exec_nrm_request_limit etc. The most common and biggest users of the memory_limit are the sqt_max_cache_size, dsi_sqt_cache_size and dist_sqt_max_cache_size and you could look at those to see if they could be reduced, even temporarily to allow a big replication job to finish and if RAM is limited on your host?
Another way to see if you can reduce some of the RS parameters that use memory from the memory_limit is to tune it using the RS Monitors and Counters package that can be found on the Replication Server Wiki page. You can download the package and it contains documentation on how to set it up, collect the counter data and run the reports to evaluate. You may find that some configuration parameters that you have set are to big and can be reduced to free up more of your memory_limit.
I hope this helps with some of the confusion regarding this warning.