NAV Performance: Is the sky the new limit?
Have you had a chance to take a look at the new NAV performance test results from Microsoft?
After reading the document, one of the conclusions got all my attention: NAV can now scale up to 500-1500 users depending on HW-configuration. Wow, this is significantly more than my normal general comfort zone of 200-250 concurrent users. NAV performance is getting better and better, and NAV is scaling better and better, though there was a little setback after version 5. Great news for the users who always require faster and better systems. This is in line with what we have started to see with the NAV 2015 web client operating 4 times faster than the previous version.
This document is essential to understand NAV performance and take a starting point in the basic learning and understanding of the Microsoft Dynamics NAV Server performance matrix. NAV Server is the “middle-tier” component of the Dynamics NAV product, receiving client request and executing application logic, retrieving and storing data in Microsoft SQL Server. The document describes on-premises NAV Server with on-premises SQL Server (typically large systems’ deployments) and multitenant deployment against SQL Azure.The test scenarios are clearly explained, the test environments are as well and give details about how the tests were executed and what they resulted in.
Maybe I’m skeptical by nature, but when I see things too good to be true I need to double check. I wanted to be sure that I could trust these results 100%, and I wanted to understand all the technicalities in these reports… So I asked two of my good friends about their view on this: SQL Perform director Hynek Muhlbacher and Ronald Dirkx. They were so kind to provide me with additional insight into the performance test evaluation. That is great stuff, and I would like to share my take-aways with you.
The tests performed by Microsoft show that:
- Theoretically for the NAV Server, there is almost a linear equation between the number of users and/or frequency of tasks executed versus the required hardware platform. This is very useful information for the field engineers recommending HW and SW platforms for their deployments.
- The on-premises SQL Server configuration is clearly documented, using 16GB of RAM (low), excellently performing 24 disks in RAID10, and excellent Network bandwidth (4 x NIC in 2 teams), and 8 CPU cores with Hyper Threading enabled (16 logical cores).
Microsoft Dynamics NAV performance: where is the new limit?
When reading the document, you may get the impression that, when it comes to NAV performance, the sky is the new limit, because the NAV Server scales up almost linearly and could be scaled even further. But that is not that simple! There are a few issues are related to the SQL Server part of the equation:
- The test database was only around 50GB, so the majority of the data in the SQL Server would be cached, putting stress only on the CPU cores. In the field, in large deployments, the databases are much bigger (even 1TB and above) so much bigger RAM would be needed, or much better disk subsystem should be used.
- In real customer cases, there are also complex processes hampering the performance, the biggest issue then being blocks, deadlocks and timeouts.
- There are other aspects to take into consideration, for example, you might have 100 users spread functionally across all application areas, but more often it would be things like 10 users in G/L and Purchase Ledger, and then 80 users in Sales Order Processing and those will be definitely having congestions.
So in essence, whilst the sizing of the NAV Server is clear and well documented, in the area of SQL Server sizing, setting up, proactive monitoring, preventive maintenance and optimizing are non-existent. Of course, the scope and focus of the document is the NAV Server, not SQL Server, so this is just extra insight… but a good recommendation would be to make sure that consultants and end-users understand that the “SQL Server HW and SW platform” is a very important aspect when it comes to right/sizing NAV performance.
On the top of these considerations, it is crucial that new applications and/or add-ons are created to perform well, and that you remember to do true performance testing prior to deployment with the correct (size of the) data, number of users, and realistic scenarios.
Once all these proactive steps are done, performance issues in large deployments are still likely to occur. Those can be analyzed and dealt with proactively, but the costs are not just going to be about putting an extra RAM to the NAV Server. The solution might be as simple as adding RAM, changing disks, adding indexes, but in reality, after those options are exhausted then projects like application re-design, deploying Business Intelligence, data archiving, re-coding specific application areas, and other actions could be needed to help reach a truly sky high limit.