![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
We are on a 32-bit system with lots of memory (16G) supporting other applications in addition to Analysis Services 2000 SP3 enterprise edition. The data soruce is Oracle. We have a single database with 6 cubes and each with many partitions. We also have many dimensions (all shared), one dimension (with multiple hierarchies) is a large dimension (disk size close to 100MB). While users are querying, about twice in the last month I found "The Server is out of memory" error in the Event log after users complained of slowdown or unresponsiveness. The memory conservation threshold is set to 2GB (we haven't turned one /3GB switch). I did go through the performance and operations guides. There was some local opposition to going with /3GB switch and I don't fully understand it. We are running an ASP.Net application on the same machine that reports data from the cubes. Ideally we should move to 64-bit, but as stated in teh document, there are other issues to consider before we migrate. In the meantime, is there anything I can do to not get this error? Should I reduce the high memory lower than 2GB (at the expense of losing query results cache)? Thanks for your help. Murthy |
#3
| |||
| |||
|
|
In the AS Operations Guide, we point out that one of the additional resources that folks don't always consider is that AS needs backing store for its larger address space (this is because AS relies on OS control of virtual memory; while the SQL RDBMS allocates memory at the physical page level). Thus we recommend adding a second pagefile to the system. That could be the problem you are encountering. Another possibility is that you've set high memory too close to the actual OS limit. I would lower it to 1.7GB. You need some room for the executable itself and other uses of memory which are not included. Remember that high and low memory are not really "allocations" in the strict sense, but really "thresholds" which tell the msmdsrv service to start to do something when they are crossed.. In this case, when the virtual memory usage of AS goes above 1.7GB, the cleaner thread notices it and can start to trim back the cache to the low memory limit. If the high memory is too close to 2GB, then the OS may get notified *before* the cleaner thread does. You want to leave yourself some room to let the cleaner thread do its thing. -- Dave Wickert [MSFT] dwickert (AT) online (DOT) microsoft.com Program Manager BI SystemsTeam SQL BI Product Unit (Analysis Services) -- This posting is provided "AS IS" with no warranties, and confers no rights. "MurthyJ" <MurthyJ (AT) discussions (DOT) microsoft.com> wrote in message news:C5B6C9F3-67E0-44A2-AECD-AC1F9BA73D97 (AT) microsoft (DOT) com... We are on a 32-bit system with lots of memory (16G) supporting other applications in addition to Analysis Services 2000 SP3 enterprise edition. The data soruce is Oracle. We have a single database with 6 cubes and each with many partitions. We also have many dimensions (all shared), one dimension (with multiple hierarchies) is a large dimension (disk size close to 100MB). While users are querying, about twice in the last month I found "The Server is out of memory" error in the Event log after users complained of slowdown or unresponsiveness. The memory conservation threshold is set to 2GB (we haven't turned one /3GB switch). I did go through the performance and operations guides. There was some local opposition to going with /3GB switch and I don't fully understand it. We are running an ASP.Net application on the same machine that reports data from the cubes. Ideally we should move to 64-bit, but as stated in teh document, there are other issues to consider before we migrate. In the meantime, is there anything I can do to not get this error? Should I reduce the high memory lower than 2GB (at the expense of losing query results cache)? Thanks for your help. Murthy |
#4
| |||
| |||
|
|
Thanks Dave. I will go ahead and implement both options you suggested. I also noticed that the memory reported in teh Task Manager for msmdsrv.exe is going up relatively quickly (as we added a lot of new users to our system). Two quick questions: - Is this a situation where I would also add the CleanerInterval registry key to have the cleaner thread wake up often to cleanup? - If I lower the memory conservation threshold, do I need to restart the service? Thanks again. Murthy "Dave Wickert [MSFT]" wrote: In the AS Operations Guide, we point out that one of the additional resources that folks don't always consider is that AS needs backing store for its larger address space (this is because AS relies on OS control of virtual memory; while the SQL RDBMS allocates memory at the physical page level). Thus we recommend adding a second pagefile to the system. That could be the problem you are encountering. Another possibility is that you've set high memory too close to the actual OS limit. I would lower it to 1.7GB. You need some room for the executable itself and other uses of memory which are not included. Remember that high and low memory are not really "allocations" in the strict sense, but really "thresholds" which tell the msmdsrv service to start to do something when they are crossed.. In this case, when the virtual memory usage of AS goes above 1.7GB, the cleaner thread notices it and can start to trim back the cache to the low memory limit. If the high memory is too close to 2GB, then the OS may get notified *before* the cleaner thread does. You want to leave yourself some room to let the cleaner thread do its thing. -- Dave Wickert [MSFT] dwickert (AT) online (DOT) microsoft.com Program Manager BI SystemsTeam SQL BI Product Unit (Analysis Services) -- This posting is provided "AS IS" with no warranties, and confers no rights. "MurthyJ" <MurthyJ (AT) discussions (DOT) microsoft.com> wrote in message news:C5B6C9F3-67E0-44A2-AECD-AC1F9BA73D97 (AT) microsoft (DOT) com... We are on a 32-bit system with lots of memory (16G) supporting other applications in addition to Analysis Services 2000 SP3 enterprise edition. The data soruce is Oracle. We have a single database with 6 cubes and each with many partitions. We also have many dimensions (all shared), one dimension (with multiple hierarchies) is a large dimension (disk size close to 100MB). While users are querying, about twice in the last month I found "The Server is out of memory" error in the Event log after users complained of slowdown or unresponsiveness. The memory conservation threshold is set to 2GB (we haven't turned one /3GB switch). I did go through the performance and operations guides. There was some local opposition to going with /3GB switch and I don't fully understand it. We are running an ASP.Net application on the same machine that reports data from the cubes. Ideally we should move to 64-bit, but as stated in teh document, there are other issues to consider before we migrate. In the meantime, is there anything I can do to not get this error? Should I reduce the high memory lower than 2GB (at the expense of losing query results cache)? Thanks for your help. Murthy |
#5
| |||
| |||
|
|
Sorry, I've never played with the cleaner thread scheduling. In SQL Server 2000, all of the memory parameters are stored in the registry and need a service restart to be reread. BTW: This isn't necessarily true with SQL Server 2005. There are many parameters which can be reset from the config.ini file and the service detects that the file has been edited. However, it turns out the memory is one of those which need a service restart even on Yukon :-) -- Dave Wickert [MSFT] dwickert (AT) online (DOT) microsoft.com Program Manager BI SystemsTeam SQL BI Product Unit (Analysis Services) -- This posting is provided "AS IS" with no warranties, and confers no rights. "MurthyJ" <MurthyJ (AT) discussions (DOT) microsoft.com> wrote in message news:9A65DC7B-D260-4C23-8BDB-3701A1CA400F (AT) microsoft (DOT) com... Thanks Dave. I will go ahead and implement both options you suggested. I also noticed that the memory reported in teh Task Manager for msmdsrv.exe is going up relatively quickly (as we added a lot of new users to our system). Two quick questions: - Is this a situation where I would also add the CleanerInterval registry key to have the cleaner thread wake up often to cleanup? - If I lower the memory conservation threshold, do I need to restart the service? Thanks again. Murthy "Dave Wickert [MSFT]" wrote: In the AS Operations Guide, we point out that one of the additional resources that folks don't always consider is that AS needs backing store for its larger address space (this is because AS relies on OS control of virtual memory; while the SQL RDBMS allocates memory at the physical page level). Thus we recommend adding a second pagefile to the system. That could be the problem you are encountering. Another possibility is that you've set high memory too close to the actual OS limit. I would lower it to 1.7GB. You need some room for the executable itself and other uses of memory which are not included. Remember that high and low memory are not really "allocations" in the strict sense, but really "thresholds" which tell the msmdsrv service to start to do something when they are crossed.. In this case, when the virtual memory usage of AS goes above 1.7GB, the cleaner thread notices it and can start to trim back the cache to the low memory limit. If the high memory is too close to 2GB, then the OS may get notified *before* the cleaner thread does. You want to leave yourself some room to let the cleaner thread do its thing. -- Dave Wickert [MSFT] dwickert (AT) online (DOT) microsoft.com Program Manager BI SystemsTeam SQL BI Product Unit (Analysis Services) -- This posting is provided "AS IS" with no warranties, and confers no rights. "MurthyJ" <MurthyJ (AT) discussions (DOT) microsoft.com> wrote in message news:C5B6C9F3-67E0-44A2-AECD-AC1F9BA73D97 (AT) microsoft (DOT) com... We are on a 32-bit system with lots of memory (16G) supporting other applications in addition to Analysis Services 2000 SP3 enterprise edition. The data soruce is Oracle. We have a single database with 6 cubes and each with many partitions. We also have many dimensions (all shared), one dimension (with multiple hierarchies) is a large dimension (disk size close to 100MB). While users are querying, about twice in the last month I found "The Server is out of memory" error in the Event log after users complained of slowdown or unresponsiveness. The memory conservation threshold is set to 2GB (we haven't turned one /3GB switch). I did go through the performance and operations guides. There was some local opposition to going with /3GB switch and I don't fully understand it. We are running an ASP.Net application on the same machine that reports data from the cubes. Ideally we should move to 64-bit, but as stated in teh document, there are other issues to consider before we migrate. In the meantime, is there anything I can do to not get this error? Should I reduce the high memory lower than 2GB (at the expense of losing query results cache)? Thanks for your help. Murthy |
![]() |
| Thread Tools | |
| Display Modes | |
| |