Wednesday, 4 September 2024

Performance tools in d365 FO

 When working with the performance of Dynamics 365 F&SCM there are several tools available. Each tool has its strengths, and no one tool will give you the full picture. It is important when diagnosing performance issues to use the tools to gather information to help you understand the issue.

Gathering information helps you gain more insight into the issue, but sometimes it is to rule things out. As you review the information, a picture of what is happening and what might be happening will become clearer. The information might directly help resolve the issue, lead to understanding where more detailed information is required, or additional tools to include in the analysis.

The primary tools recommend by Microsoft are:

Trace parser

Importing a business process trace from Dynamics 365 into the trace parser allows the developer to see the X++ code paths and SQL events that occurred. As a tool, it is best to review a single business process, allowing the trace import to show the code execution and the SQL events that occurred for that process. You can see frequency of SQL calls, and timings of the SQL events, along with timings for code execution. This can allow you to understand where bottlenecks are occurring in that business process.

SQL profiler

The SQL profiler allows the developer to see all the SQL events that occur during a testing cycle. This can be a powerful tool to find problematic queries, slow running queries, monitor SQL server performance, and capture data using performance counters.

LCS environment monitoring

The Life Cycle Services (LCS) environment monitoring performs some basic health checks on various components: Application Object Server (AOS), Batch framework, Data Management Framework, Microsoft Azure SQL, and Management reporter. Multiple sources are used to run the checks to continuously monitor the environment. For production environments Microsoft handles monitors the environment, but these tools can be used in non production environments.

Performance timer

To use the performance timer, you add “&debug=develop” to the end of the URL. The information gathered by the timer includes information on opening a form, information on the garbage collection processes, web client session information, and the service session counters.

Fiddler

Fiddler is a tool to collect HTTP traces. This will capture all the HTTP or HTTPS traffic, allowing you to review the traffic flow.

Performance Test tool

There is a tool in the Dynamics 365 client that will run some performance tests. The tool is located under the System Administration > Periodic Tasks > Run Performance Test.

Several tests are available to the user, along with the number of iterations to complete. The more tests and iterations, the longer the testing will take to complete.

The tests being performed are mostly related to database access, using inserts, updates, select, and delete. The test will also manipulate data in the tempDB, in memory tables and AOS cache.

This tool is not designed to compare the performance of difference environments, but will check the general health of your system. It is a simple tool the will check the functionality of the core functions of the system. If these fail or run significantly slower than ‘normal’ then you can expect to have general user performance issue.

Running this tool periodically and reviewing the timings would give you some basic benchmarks of basic performance of core functions. Variations in timing would be expected, based on system load at the time of running the script. But it can give confirmation of issues, if users are reporting performance issues. It should not be used to compare the performance of systems in different environments, as there are too many variables that can affect the results.

No comments:

Post a Comment

workflow business event configuration with power automate flow in d365 FO

  https://www.linkedin.com/pulse/purchase-order-approvals-d365fo-power-automate-ahmed-ali-el-bardisy-jyssf/