General advice on D365FO performance optimization

Overview

Poor software performance optimization is always problematic and often plagues customers with its presence. Enterprise-class programs are no exception, of course, and this is exceptionally true for default settings of Dynamics 365.
Nonetheless, a lot of complaints about D365FO lacking in performance optimization are totally baseless. Incorrect system configuration and several objective factors can significantly impact the speed of computing inside the program. Without due maintenance and proper system setup, many organizations will face the major problem of performance optimization sooner than later.
The main question to answer: is your hardware really not powerful enough to run Dynamics 365, or is it just a matter of incorrect setup process? Today, we will give you several pieces of advice on setting up, monitoring and maintaining your system to keep it running smoothly.
We will list tried and tested methods of D365FO performance optimization. There are plenty of methods of reducing input lag, fixing constant freezes and bettering server and client computing speeds.

System evaluation

Before doing anything else, make sure your hardware is compatible with D365FO. Assess the software requirements and directly compare them to your machine. Dynamics 365 web-based software also has strict prerequisites and works only in most popular browsers.If you utilize Azure, it would help tremendously to optimize configs of Azure apps. You can easily do so with Azure App configuration - special service dedicated to streamlining control over apps and utilities configurations. This will prevent a lot of problems with your system’s performance optimization. If you are working exclusively on local network, analyze all server configurations.

Finding the root of performance optimization problems

Performance Timer is an underestimated instrument for diagnosing and fixing performance optimization issues. It is a straightforward utility giving you fast access to overviewing different operations the system carries out without dragging you into the maintenance side of things - only a web browser is required.
To run Performance Timer, open a D365FO web page and include ‘debug&develop’ after the site address:
https://mysite.cloudax.dynamics.com/?cmp=usmf&debug=develop
You should now see this tool in the utility menu. Then, simply visit the page you want analyzed, press ‘Timer’ and you will be shown the latency of client to server communication, displayed so:

Inspecting system with Performance Timer Utility

Performance Timer is an underestimated instrument for diagnosing and fixing performance optimization issues. It is a straightforward utility giving you fast access to overviewing different operations the system carries out without dragging you into the maintenance side of things - only a web browser is required.
To run Performance Timer, open a D365FO web page and include ‘debug&develop’ after the site address:https://mysite.cloudax.dynamics.com/?cmp=usmf&debug=develop
You should now see this tool in the utility menu. Then, simply visit the page you want analyzed, press ‘Timer’ and you will be shown the latency of client to server communication, displayed so:

Illustration


Going further, you can conduct a more in-depth analysis by scanning full server call list and looking through the most taxing SQL operators. Another great idea is evaluating requests and performance optimization at runtime. There exist server speed counters to keep track of Microsoft Dynamics 365 computing speed.
Couple of other ideas to pay attention to:
Server Garbage CollectionForm requisition speed and lists of all opened/closed formsWeb-client sessions running speed, both presently free and occupiedGeneral quantity of created sessionsSorted SQL operations, launched only after specific call types
Competent Performance Timer usage is a brilliant start on solving seemingly daunting tasks of performance optimization. 

Network operation

Page load times are net related, so the next logical point on our performance optimization checklist is network setup, one of the primary things to diagnose and optimize.
Bandwidth is calculated in bits per second and defines the amount of information that can be transmitted over a scale of time. For instance, a connection with bandwidth of 2 gigabytes per second can transmit a gigabyte of data over 4 seconds.
Latency, or ping is calculated in milliseconds and defines time needed to get a reply from the server. Both high data traffic capacity and accessible proxies can majorly decrease latency.
Commonly, wired networks offer low ping and high transmission capacity in contrast to Wi-Fi or cellular networks. An important factor to consider is the range from client to server, which influences net capability greatly, no matter the connection variant.
Finding problems in your network is easy. Any convenient browser speed tests with built-in monitoring utilities will do. An equivalent utility is also available in D365FO, for fast diagnostics of client-server correspondence.

Illustration

Server performance optimization

Microsoft servers don’t support user performance optimization in any way. Nonetheless, there are still several sensible actions regarding server surveillance and performance optimization. Despite them being mostly related to online deployment, we still think they are worth mentioning and should be included into routine Dynamics 365 support maintenance.
Various types of data security can be organized in Microsoft Dynamics 365. Security positions are distributed commensurate with hierarchy. Everyone is granted authorization via assignment or inheritance methods. The system uses several layers of requests to ascertain roles.
Permissions require time to be granted. Some accessibility data is usually stored in cache, but the non-stored information reduces query response speed. Check states of each role and utilize security measures only where needed.
Synchronous Workflows, despite common belief, work superiorly with factory settings, without unnecessary code. Plugins can be installed, but they usually result in administrative troubles and severe operating capacity drops.
Common data queries, like Update, Read, Delete can lag your machine, but not as much as some longer requests. These should be ideally enhanced by supervisors using Microsoft SQL.

Custom content issues

Whenever the user wants to review data, D365FO inputs a net request to load specified forms. The Performance Center utility gives you a centralized overview to identify any issues. Bottlenecks in data download process will have visible indication. Microsoft documents provide some decent ideas about performance optimization.
As the guides suggest, overzealousness in form customization can have negative impact on machine’s processing power. The time it takes for data to be displayed in UI is mostly based on how much time it needs to finish downloading. To lessen load times, look towards minimalistic design: no more than 80 fields per form with no more than 5 tabs on display at a time. If using cellular devices, single column tabs work like a charm. Editable fields are rendered much slower, so make any non-essential field read-only, or remove them entirely. Custom content web resources can be stored in collapsed tabs, preventing unnecessary renders.

SQL Performance Optimization

A most important task is SQL index defragmentation. Microsoft Dynamics 365 specialists advise dedicating no less than one day a week towards this task, due to the ever-growing databases of any major enterprise.
Index fragmentation affects computing speed in a major way. We recommend setting up automatic tasks to rebuild indexes at constant intervals. Look at Environment Monitoring tab, set the task as default and regulate time period to when your system is least loaded.
Database compression reduces data storage while increasing query speed. We recommend doing this when abnormal amounts of unnecessary data are present.

Illustration

Redundant Information Wipe

Keeping lots of unnecessary info in Microsoft Dynamics 365 is certain to negatively impact potential operating power. All modules in Dynamics 365 support cleaning processes. Before doing anything, make sure no useful data gets wiped. Microsoft offers recommendations to help set up regular history clearing. Simply put, here is what you should do:
-Use Duplicate Detection utility to find redundant data copies. Merge or wipe any matching info discovered via this method.
-Bulk Deletion gives the ability to set up tasks to free up time and effort.

Cloud Functionality

Azure subscription gives you opportunity to pick both the size of virtual machine and advanced parameters to increase D365FO operating speed. Azure Premium proposes lots of different support plans, each filling its own niche in power to money ratio. Our recommendation is a DS12V2 machine with 3 SSD drives, 128GB each. This custom SQL drive config amounts to about 48 EUR monthly (16 EUR per drive). However, we recommend considering your options and budget carefully, as even two SSD drives may be enough for your business.

To conclude

Any machine requires maintenance and Microsoft Dynamics 365 is no different. Proper configuration and frequent system check-ups are required to keep your system in peak condition. Of course, above suggestions are only a few of many available ways to improve far beyond Dynamics 365 default settings. Utilize Azure and different power platform services to achieve significant increases to your workflow. And don’t forget, it is absolutely better to hire professionals for specific jobs such as this one. We at DR Dynamics are always ready to offer Dynamics 365 support. From system assessment and detailed productivity reports to performance optimization, our specialists have got you covered. DR Dynamics offers different support plans to suit any and all of your needs. If you are interested and wish to know more about Dynamics 365 support we provide, contact us here.