“Why does it run so slowly?” is the question that encompasses various performance issues of any sort of software. Complicated enterprise-centric systems can unlikely demonstrate a great performance with default adjustments. Microsoft Dynamics 365 Finance and Operations is no exclusion. Complaints about the insufficiency of Dynamics 365 Finance and Operations performance appear groundless oftentimes. Improper system settings along with some objective factors can affect the operation parameters of D365FO. Without proper monitoring and tuning of the system, organizations might face speed and performance issues. The ultimate question – does your system really lack performance or, perhaps, it’s just under configured? Below you can find some tips on how to conduct monitoring and tuning of the system to avoid operational slowness.
Dynamics 365 Performance Boost Pro Tips
Further in this article, we’ll list the most efficient proven ways to optimize your Dynamics 365 Finance and Operations performance. Thankfully, there are tools and approaches to fight downtime, reduce latency, and put server and client performance in line.
Check the system
First things first, you should avoid initial compatibility issues by checking the requirements of the D365FO software as well as going through the structure of your existing system. The Dynamics web application has clearly defined requirements and runs in most commonly used browsers (Chrome, Edge, Safari, Explorer). If you are using Azure, you should also thoroughly check the configuration of all Azure apps. For this, you can use Azure App Configuration – a service for centralized management of feature flags and application settings. It helps avoid the performance-affecting distribution of configuration settings of components by putting everything in one place. If you are working with on-premises powers only, then you should check the configuration of each connected server.
Getting to the source of an issue
Many people claim online that it is simply impossible to optimize a cloud-hosted Dynamics 365 system and all performance flaws are the sole responsibility of Microsoft. This is a common misconception. There are all the possibilities to monitor and optimize the D365FO installation, some of which we talk about in the article. But first, you should get to the core of the issue. Understand where it is coming from. The most common causes of poor performance in Dynamics 365 are either an incompetently customized code or failure to follow guidelines for live system maintenance from Microsoft. So, first off, make sure to check the compliance with the initial guidelines. Here are several other steps you can take to prevent non-compliance:
- Use Trace Parser to thoroughly analyze code
- Employ LCS (Lifecycle Services) environment management
- Conduct analysis of live backups
- Get Microsoft Premium Support
- Check out Microsoft D365 Yammer groups for insights
Analysis via Performance Timer
Performance Timer is an outstanding tool for troubleshooting Dynamics 365 Finance and Operations performance. It is hassle-free and offers a quick way to get insights on individual system actions without going far – all you need is a browser. In order to launch Performance Timer, you need to open your D365FO web page with the debug=develop parameter added to the URL like so: https://mysite.cloudax.dynamics.com/?cmp=usmf&debug&develop You will immediately see the Performance Timer tool added to your Dynamics 365 menu panel. The rest is really simple – open the page you wish to analyze, click “Timer”, and you will see the difference between the client time and server time calculated and displayed like follows:
This is where you can dive into further research – review different actions, go through a whole list of server calls with filters, and view the most time-consuming SQL statements in recent sessions. You can also analyze queries that are running in real-time. There are server performance counters that help with D365 performance monitoring as well. Other things you can also check include:
- Garbage collection (GC) processes piling up on the server;
- Forms that are opened at the time along with their opening/closing per second rates and counters for all forms created and closed;
- Current web client sessions – the idles ones and the used ones;
- The total number of sessions created;
- Conveniently sorted SQL queries triggered by specific calls.
Using the Performance Timer tool is a great kick-off and foundation to your performance optimization routine. You certainly have nothing to lose by trying it.
The loading speed and responsiveness of a page both depend on a couple of network-related factors that should be checked and adjusted first of all.
- Bandwidth. This is the network capacity measured in bits/second that determines how much data can be transferred through the network per unit of time. A 1 GB file can be transferred in approximately 8 seconds if the network bandwidth is 1 Gb/s.
- Latency. This is the time of response between a server and a client measured in ms. Both the network traffic and availability of proxy servers can significantly affect latency.
Usually, wire-connected networks have lower latency and higher bandwidth than WiFi and mobile connections. Besides, the distance from a server determines the network performance whichever type of connection is applied. To identify network performance issues you can use various browser-based speed tests along with inbuilt diagnostic tools. The latter is available in Dynamics 365 to perform a quick test for client-to-organization connection speed diagnostics.
No modification is possible when it comes to servers since Microsoft controls them completely. The situation is similar with both on-premise and online installations. However, there are some decent practices on how to check and improve server performance. Even though they belong to online deployments mostly they are worth mentioning in our context. Besides, this can be a part of a proper D365 performance monitoring as well.
- Security model. Dynamics 365 allows setting up security models in varying degrees of complexity. The security roles go in accordance with the arranged positional hierarchy. Users can access D365FO through either assignment or inheritance. The system makes queries about the security roles of members by using multiple layers.
Permissions for accessing the records take time. The system can cache some access data but many items remain uncached slowing down the returning user queries to the records. It is recommended to check the state of each role and keep the least security where possible.
- Workflows. Despite many developers-inherent biases, using out-of-the-box D365FO provides better operational performance when it comes to such functions as Synchronous Workflows. No redundant code is needed on a server-side. Of course, any sort of custom automation is possible, but administrative issues along with financial burdens can arise not to mention D365 performance problems in the case of using some bespoke plugins.
- Data query. To either perform some standard operations such as Read, Update, Delete, etc., or retrieve some data the system queries can take much time. Sysadmins can arrange some sort of optimization of the long-running queries via adding Microsoft SQL indexes. No permission from the Microsoft Support team is needed.
D365FO is to make a request via the network to download the form when a user needs to check a record. All the data contained in the record run under the influence of such factors as the network infrastructure, server performance, client computer, and customization. To identify issues that influence D365 performance you can use Performance Center (CTRL+SHIFT+ALT+Q). The items taking much time to download will be visualized. Some decent suggestions on how to optimize your performance are available in the Microsoft documentation. A cumulative negative impact on forms of D365 may occur with various customization items such as collapsed tabs, web resources, and subgrids. The more complicated data is to be displayed at the user interface the longer the period of downloading is needed. Minimalist design, on the other hand, can optimize the performance of D365 forms. It is reasonable to have fewer than 75 fields in each form as well as 5 tabs or less to be displayed. A single-column design of tabs is recommended for mobile. Remember also that editable fields are getting rendered slower than the read-only ones. Timer controls, Social Pane, Quick View forms, and charts all are worth removing if they are not in use to exempt your system from redundant data downloading. Some web resources (HTML pages, images, etc) that display custom content are oftentimes inbuilt into the forms. Keep them residing in the collapsed tabs with no rendering on a mobile client.
With no regular job to rebuild indexes through SQL defragmentation D365 performance is at risk to go down. Microsoft specs recommend performing the job at least once a week. The reason is that the volume of any enterprise-scale database can grow quickly. On the other hand, database compression allows reducing data storage while query performance gets better. The feature is available in the application to be configured from the client-side. Another factor that affects D365 performance is index fragmentation. The Environment Details section enables checking the process. Go to Environment Monitoring to configure your indexes’ rebuilding whenever you need regularly. Keep the job as default to let the system perform it automatically. Besides, you can adjust the period for the job not to perform it when the system is loaded over 50%.
Cleaning up obsolete data
A lot of redundant data is piling up in the system if no cleanup job is done. Executed orders, transactions’ history and the like all may affect your D365 performance badly. To free database size, the cleanup jobs can be run either manually or automatically in each module of Dynamics 365. Be careful with the process since some sensitive business data can disappear. Discuss with your team what to clean and what to leave. Follow the recommendations of Microsoft specs to make history cleanup over the off-business periods on a regular basis. What you need to do all in all is:
- Identify duplicates – you can use Duplicate Detection Wizard offered by the platform. The tool is really simple to figure out and start checking duplicates;
- Consolidate duplicates – within an entity, you can easily merge duplicates – you just select the records to be merged and click “Merge” in the panel;
- Bulk Delete Wizard – to save your time and nerves, you can delete obsolete data in bulks. For this, go to settings -> Data Management -> Bulk Record Deletion; there, you can create a new bulk deletion job. Just click “New” and follow the instructions.
The Azure subscription allows choosing both the size of your virtual machines and their optimal adjustment to achieve the best D365 performance. The Premium plan based on SSD storage is available with virtual machines of the DS series. For example, DS13V2 offers 8 cores along with 54 GB RAM which seems to be a more-than-sufficient configuration for whichever scenario. Such a plan is quite expensive in comparison with the more reasonable DS12V2 series having 4 cores and 28 GB RAM. It is recommended to select such a machine with three SSD storage disks 128 GB each. Such customized SQL disk configuration can cost about 16 Euro per disk monthly. You can adjust your settings to make the configuration even cheaper if only two disks are enough for your workflows.
Dynamics 365 Finance and Operations performance depends on how the system is configured. Continuous D365 performance monitoring is what can help set up the system properly. The suggestions given above include just a few methods for making the system more productive in comparison with a pure out-of-the-box version. Achieving the best D365 performance is possible in every scenario. However, you should never neglect the extra capacities you can get. Take advantage of the whole stack of Azure and power platform services to ultimately boost the Dynamics 365 Finance and Operations performance. And remember that it is always better to find professionals to accomplish such specific work. Contact us to get consulted on every aspect of D365FO maintenance and customization. Our experts are always ready to take responsibility for your enterprise system running in a trouble-free mode.