AX 2012 - Server Configuration Performance Options Review
I wanted to take a little time this fine Friday, and review some of the new options that exists when it comes to the AOS Server Configuration in AX 2012. There are a few new things to point out, really a decent amount of things, and it's important to understand them.
As you can see from the screen shot above, to get started with this review we need to look at the System Administration > Setup > System > Server Configuration. In doing so, a form like the one shown in the following screen shot should appear.
You maybe familiar with this form, basically it list all the AOS instances that make up the current Microsoft Dynamics AX instance your connected to. Further you have some of the more standard configuration options on the right, per select AOS. These include the ability to set Batch schedule times, max batch threads and even if an AOS is meant to be considered as a batch server.
What you may not be familiar with is a little hidden part of this server configuration form. To get to this, as shown in the following screen shot, you must scroll with the right far side scroll bar, as highlighted so you can see Performance Options smart tab.
In doing this, when you expand the performance options, you will notice that there are two main groups. A group, related to such performance settings for 'Settings for All AOS Instances' as well as 'Cache limits for this AOS instance.'
You will notice that when looking at this, and comparing these two main groups, that only the cache limits can has a specific AOS override. Other settings like Error on invalid field access or Maximum number of Tables in a Join are specific to the entire instance of Microsoft Dynamics AX 2012. This means those such settings applies across all AOS(es).
I've highlighted a few options in the above screen shot. You can see that the first highlighted option is the maximum number of Tables in a Join. This limit exists, because with all the great new data models changes in AX 2012, there can be some performance issues. Specifically related to creating queries, calls and the like which could cause a massive amount of joins. The out-of-the-box is 27, and this is one settings that is something I've personally had to change for a few clients already. Be careful with it, it's there to limit for a reason.
Further highlighted we have some of the caches, like the amount of objects in the Global Object Cache. This is the size of the objects keep in RAM, for a Specific AOS. This is also now known as the SysGlobalCache. What's interesting to point out, and very important to understand with these cache point of views, is that these caches are always contained within an AOS. This means there are no cache sharing taking place between AOS(es) that you might have in your instance of AX.
Just because you have the option of overriding the cache values for a specific AOS, and you instead use the global setting, should not imply that the cache's are shared among the AOS(es).
I think, for now this is a good introduction to the Server Configuration within AX 2012, specifically the Performance Options for AOS(es). The key take away's are understanding how to get to these values, how caches act within the context of an AOS, and specific instance wide global settings, like Maximum tables in a join.
That's all for this week, I hope everyone has a great weekend, and make sure to check back soon. There is a lot more coming, including the build up to #CONV12. Till Next Time!
Labels: AOS, AX 2012, Conv12, Dynamics AX, Dynamics AX 2012, Microsoft, Performance Options, Server Configuration, SysGlobalCache, Table Joins
3 Comments:
Brilliant article, I am running into an issue where I am getting the error "The number of joins is 27. The maximum number of joins is 26..." I have changed the max number of tables in a join to 30 and am still getting the exact same error. Is there something I am overlooking?
Thanks
Concerning what you are overlooking, you need to restart the AOS after changing the max number of joins.
On the other hand brandon, I was wondering if the max number of tables in joins is linked to the cache or something since I tried to set the number to 33 and the app kept crashing when ever I tried to open a page with my query but after setting the number to 30 it works like a charm! I wonder if I don't have to up the cache size or something like it?
Thanks in advance!
Traditionally MS cautioned against making any changes to the buffer size. There were quite a few articles from MS on this subject suggesting alternatives(Ex - http://blogs.msdn.com/b/emeadaxsupport/archive/2010/05/10/binding-operation-failed-to-allocate-buffer-space.aspx)
But I have seen quite a few customers with changed buffer size working without problems. And I have heard MS Support Engineer saying similar things (i.e. they have customers with this change working fine).
Coming to your issue -
1) Under the hood, AX reserves the system memory to 24K (default).
2) The error message you have received is asking to increment by 2K
In my opinion, you can go ahead and make this change.
--
servidores virtuales privados
Post a Comment
<< Home